private Shell getShell() { Object obj = document.getRootElement().getManagedObject(); Shell parent; if ( obj instanceof Shell ) { parent = (Shell) obj; } else { parent = ( (Composite) obj ).getShell(); } if ( parent == null ) { throw new IllegalStateException( "Could not get Shell reference from Xul Dialog Tree." ); } return parent; }
public void dispose() { super.dispose(); List<XulComponent> pops = xulDomContainer.getDocumentRoot().getElementsByTagName( "menupopup" ); for ( XulComponent pop : pops ) { ( (MenuManager) pop.getManagedObject() ).dispose(); } } }
public void removeMenuItem( String itemid, boolean removeTrailingSeparators ) { XulMenuitem item = (XulMenuitem) mainSpoonContainer.getDocumentRoot().getElementById( itemid ); if ( item != null ) { XulComponent menu = item.getParent(); item.getParent().removeChild( item ); if ( removeTrailingSeparators ) { List<XulComponent> children = menu.getChildNodes(); if ( children.size() > 0 ) { XulComponent lastMenuItem = children.get( children.size() - 1 ); if ( lastMenuItem instanceof XulMenuseparator ) { menu.removeChild( lastMenuItem ); // above call should work, but doesn't for some reason, removing separator by force // the menu separators seem to not be modeled as individual objects in XUL try { Menu swtm = (Menu) menu.getManagedObject(); swtm.getItems()[swtm.getItemCount() - 1].dispose(); } catch ( Throwable t ) { LogChannel.GENERAL.logError( "Error removing XUL menu item", t ); } } } } } else { log.logError( "Could not find menu item with id " + itemid + " to remove from Spoon menu" ); } }
private void createNewExtMenuList( XulComponent parent ) { xulParent = parent; if ( ( xulParent != null ) && ( xulParent instanceof XulTree ) ) { variableSpace = (DatabaseMeta) ( (XulTree) xulParent ).getData(); } else { variableSpace = new DatabaseMeta(); style = SWT.BORDER; } extCombo = new ComboVar( variableSpace, (Composite) parent.getManagedObject(), style ); combobox = extCombo.getCComboWidget(); setManagedObject( extCombo ); combobox.addSelectionListener( new SelectionAdapter() { public void widgetSelected( SelectionEvent e ) { fireSelectedEvents(); } } ); combobox.addModifyListener( new ModifyListener() { public void modifyText( ModifyEvent modifyEvent ) { fireModifiedEvents(); } } ); }
public void xulLoaded( GwtXulRunner gwtXulRunner ) { IModelerMessages messages = new GwtModelerMessages( (ResourceBundle) gwtXulRunner.getXulDomContainers().get( 0 ).getResourceBundles().get( 0 ) ); BogoPojo bogo = new BogoPojo(); XulDomContainer container = gwtXulRunner.getXulDomContainers().get( 0 ); GwtModelerWorkspaceHelper helper = new GwtModelerWorkspaceHelper(); ModelerWorkspace model = new ModelerWorkspace( helper ); model.setDomain( this.domain ); ModelerController controller = new ModelerController( model ); controller.setWorkspaceHelper( helper ); try { ModelerMessagesHolder.setMessages( messages ); } catch ( IllegalStateException e ) { // ignore, it was already set by someone else boolean ignore = true; } BindingFactory bf = new GwtBindingFactory( container.getDocumentRoot() ); controller.setBindingFactory( bf ); container.addEventHandler( controller ); ModelerUiHelper.configureControllers( container, model, bf, controller, new ColResolverController() ); RootPanel.get().add( (Widget) container.getDocumentRoot().getRootElement().getManagedObject() ); try { gwtXulRunner.initialize(); } catch ( XulException e ) { e.printStackTrace(); // To change body of catch statement use File | Settings | File Templates. } }