/** @see de.willuhn.jameica.gui.Part#paint(org.eclipse.swt.widgets.Composite) */ public void paint(Composite parent) throws RemoteException { button = GUI.getStyleFactory().createButton(parent); button.setText(this.title == null ? "" : this.title); button.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); if (this.icon != null) button.setImage(SWTUtil.getImage(this.icon)); try { if (this.isDefault) parent.getShell().setDefaultButton(button); } catch (IllegalArgumentException ae) { // Kann unter MacOS wohl passieren. Siehe Mail von // Jan Lolling vom 22.09.2006. Mal schauen, ob wir // Fehlertext: "Widget has the wrong parent" // Wir versuchen es mal mit der Shell der GUI. try { GUI.getShell().setDefaultButton(button); } catch (IllegalArgumentException ae2) { // Geht auch nicht? Na gut, dann lassen wir es halt bleiben Logger.warn("unable to set default button: " + ae2.getLocalizedMessage()); } } button.setEnabled(this.enabled); button.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { GUI.startSync( new Runnable() { public void run() { try { action.handleAction(context); } catch (ApplicationException e) { Application.getMessagingFactory() .sendMessage( new StatusBarMessage(e.getMessage(), StatusBarMessage.TYPE_ERROR)); } } }); } }); }
/** * Erzeugt das Text-Widget. Ist eine extra Funktion damit es zum Beispiel von TextAreaInput * ueberschriebn werden kann. * * @return das Text-Widget. */ Text getTextWidget() { if (text == null) text = GUI.getStyleFactory().createText(getParent()); return text; }