diff options
| author | Jeremie Bresson | 2014-03-28 13:36:54 +0000 |
|---|---|---|
| committer | Jeremie Bresson | 2014-03-28 20:21:39 +0000 |
| commit | 70ee0068be6ce9ce3a0ff28ce3ea5ec717433c6d (patch) | |
| tree | c4d8264f1e47831c8b0fd10203b06cc0412885af | |
| parent | 76d2133f10febb75a294770e6134a543e218e5ec (diff) | |
| download | org.eclipse.scout.rt-70ee0068be6ce9ce3a0ff28ce3ea5ec717433c6d.tar.gz org.eclipse.scout.rt-70ee0068be6ce9ce3a0ff28ce3ea5ec717433c6d.tar.xz org.eclipse.scout.rt-70ee0068be6ce9ce3a0ff28ce3ea5ec717433c6d.zip | |
Bug 422646: Possibility to add Toolbuttons in Form
- Filter abstract classes (can be used as template)
- Typo fixes
https://bugs.eclipse.org/bugs/show_bug.cgi?id=422646
Change-Id: Ief5e1b6200cf442d02ddcd5482fb3859137ee9b3
Reviewed-on: https://git.eclipse.org/r/23982
Reviewed-by: Matthias Nick <Matthias.Nick@bsiag.com>
IP-Clean: Matthias Nick <Matthias.Nick@bsiag.com>
Tested-by: Matthias Nick <Matthias.Nick@bsiag.com>
Tested-by: Hudson CI
Reviewed-by: Jeremie Bresson <jbr@bsiag.com>
| -rw-r--r-- | org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/FormWithToolButtonsFormTest.java (renamed from org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/FormWithToolbuttonsFormTest.java) | 66 | ||||
| -rw-r--r-- | org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/AbstractForm.java | 24 | ||||
| -rw-r--r-- | org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/IForm.java | 26 | ||||
| -rw-r--r-- | org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/window/AbstractRwtScoutPart.java | 2 | ||||
| -rw-r--r-- | org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/window/desktop/editor/AbstractScoutEditorPart.java | 2 | ||||
| -rw-r--r-- | org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/window/desktop/view/AbstractScoutView.java | 2 | ||||
| -rw-r--r-- | org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/window/dialog/SwtScoutDialog.java | 2 |
7 files changed, 71 insertions, 53 deletions
diff --git a/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/FormWithToolbuttonsFormTest.java b/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/FormWithToolButtonsFormTest.java index f132e73dfe..fc6971304b 100644 --- a/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/FormWithToolbuttonsFormTest.java +++ b/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/FormWithToolButtonsFormTest.java @@ -15,13 +15,11 @@ import static org.junit.Assert.assertEquals; import org.eclipse.scout.commons.annotations.Order; import org.eclipse.scout.commons.exception.ProcessingException; import org.eclipse.scout.rt.client.ui.action.tool.AbstractToolButton; -import org.eclipse.scout.rt.client.ui.form.FormWithToolbuttonsFormTest.FormWithToolbuttonsForm.MainBox.CloseButton; -import org.eclipse.scout.rt.client.ui.form.FormWithToolbuttonsFormTest.FormWithToolbuttonsForm.MainBox.GroupBox; -import org.eclipse.scout.rt.client.ui.form.FormWithToolbuttonsFormTest.FormWithToolbuttonsForm.MainBox.GroupBox.DefaultField; -import org.eclipse.scout.rt.client.ui.form.FormWithToolbuttonsFormTest.FormWithToolbuttonsForm.Toolbutton01; +import org.eclipse.scout.rt.client.ui.form.FormWithToolButtonsFormTest.FormWithToolButtonsForm.MainBox.CloseButton; +import org.eclipse.scout.rt.client.ui.form.FormWithToolButtonsFormTest.FormWithToolButtonsForm.ToolButton01; +import org.eclipse.scout.rt.client.ui.form.FormWithToolButtonsFormTest.FormWithToolButtonsForm.ToolButton02; import org.eclipse.scout.rt.client.ui.form.fields.button.AbstractCloseButton; import org.eclipse.scout.rt.client.ui.form.fields.groupbox.AbstractGroupBox; -import org.eclipse.scout.rt.client.ui.form.fields.stringfield.AbstractStringField; import org.eclipse.scout.rt.shared.AbstractIcons; import org.eclipse.scout.rt.shared.TEXTS; import org.eclipse.scout.testing.client.runner.ScoutClientTestRunner; @@ -29,18 +27,19 @@ import org.junit.Test; import org.junit.runner.RunWith; @RunWith(ScoutClientTestRunner.class) -public class FormWithToolbuttonsFormTest { +public class FormWithToolButtonsFormTest { @Test public void testForm() throws ProcessingException { - FormWithToolbuttonsForm form = new FormWithToolbuttonsForm(); - assertEquals(1, form.getToolbuttons().size()); - assertEquals(Toolbutton01.class.getSimpleName(), form.getToolbuttons().get(0).getClass().getSimpleName()); + FormWithToolButtonsForm form = new FormWithToolButtonsForm(); + assertEquals(2, form.getToolButtons().size()); + assertEquals(ToolButton01.class.getSimpleName(), form.getToolButtons().get(0).getClass().getSimpleName()); + assertEquals(ToolButton02.class.getSimpleName(), form.getToolButtons().get(1).getClass().getSimpleName()); } - public class FormWithToolbuttonsForm extends AbstractForm { + public class FormWithToolButtonsForm extends AbstractForm { - public FormWithToolbuttonsForm() throws ProcessingException { + public FormWithToolButtonsForm() throws ProcessingException { super(); } @@ -54,22 +53,14 @@ public class FormWithToolbuttonsFormTest { return TEXTS.get("StringField"); } - public void startPageForm() throws ProcessingException { - startInternal(new PageFormHandler()); + public void startView() throws ProcessingException { + startInternal(new ViewHandler()); } public CloseButton getCloseButton() { return getFieldByClass(CloseButton.class); } - public DefaultField getDefaultField() { - return getFieldByClass(DefaultField.class); - } - - public GroupBox getGroupBox() { - return getFieldByClass(GroupBox.class); - } - public MainBox getMainBox() { return getFieldByClass(MainBox.class); } @@ -77,31 +68,16 @@ public class FormWithToolbuttonsFormTest { @Order(10.0) public class MainBox extends AbstractGroupBox { - @Order(10.0) - public class GroupBox extends AbstractGroupBox { - - @Order(10.0) - public class DefaultField extends AbstractStringField { - - @Override - protected int getConfiguredGridW() { - return 2; - } - - @Override - protected String getConfiguredLabel() { - return TEXTS.get("Default"); - } - } - } - @Order(30.0) public class CloseButton extends AbstractCloseButton { } } + public abstract class AbstractButtonTemplate extends AbstractToolButton { + } + @Order(200) - public class Toolbutton01 extends AbstractToolButton { + public class ToolButton01 extends AbstractToolButton { @Override protected String getConfiguredText() { return "Toolbutton"; @@ -113,12 +89,16 @@ public class FormWithToolbuttonsFormTest { } } - public class PageFormHandler extends AbstractFormHandler { + @Order(210) + public class ToolButton02 extends AbstractButtonTemplate { @Override - protected void execLoad() throws ProcessingException { - getDefaultField().setValue(TEXTS.get("Lorem")); + protected String getConfiguredIconId() { + return AbstractIcons.Gears; } } + + public class ViewHandler extends AbstractFormHandler { + } } } diff --git a/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/AbstractForm.java b/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/AbstractForm.java index 5897ddfa25..e1e05f9496 100644 --- a/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/AbstractForm.java +++ b/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/AbstractForm.java @@ -21,7 +21,6 @@ import java.io.Serializable; import java.nio.charset.Charset; import java.security.Permission; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.EventListener; import java.util.HashMap; @@ -465,8 +464,9 @@ public abstract class AbstractForm extends AbstractPropertyObserver implements I } protected List<Class<? extends IToolButton>> getConfiguredToolButtons() { - Class[] dca = ConfigurationUtility.getDeclaredPublicClasses(getClass()); - return ConfigurationUtility.sortFilteredClassesByOrderAnnotation(Arrays.asList(dca), IToolButton.class); + Class<?>[] dca = ConfigurationUtility.getDeclaredPublicClasses(getClass()); + List<Class<IToolButton>> filtered = ConfigurationUtility.filterClasses(dca, IToolButton.class); + return ConfigurationUtility.sortFilteredClassesByOrderAnnotation(filtered, IToolButton.class); } protected void initConfig() throws ProcessingException { @@ -636,10 +636,16 @@ public abstract class AbstractForm extends AbstractPropertyObserver implements I } @Override - public List<IToolButton> getToolbuttons() { + public List<IToolButton> getToolButtons() { return CollectionUtility.unmodifiableListCopy(m_toolbuttons); } + @Override + @SuppressWarnings("deprecation") + public List<IToolButton> getToolbuttons() { + return getToolButtons(); + } + /** * @param configuredToolbuttonLocation */ @@ -653,7 +659,7 @@ public abstract class AbstractForm extends AbstractPropertyObserver implements I } @Override - public IToolButton getToolbuttonByClass(Class<? extends IToolButton> clazz) { + public IToolButton getToolButtonByClass(Class<? extends IToolButton> clazz) { for (IToolButton b : m_toolbuttons) { if (b.getClass() == clazz) { return b; @@ -662,6 +668,12 @@ public abstract class AbstractForm extends AbstractPropertyObserver implements I return null; } + @Override + @SuppressWarnings("deprecation") + public IToolButton getToolbuttonByClass(Class<? extends IToolButton> clazz) { + return getToolButtonByClass(clazz); + } + /** * Register a {@link DataChangeListener} on the desktop for these dataTypes<br> * Example: @@ -1252,7 +1264,7 @@ public abstract class AbstractForm extends AbstractPropertyObserver implements I initFormInternal(); // fields FormUtility.initFormFields(this); - ActionUtility.initActions(getToolbuttons()); + ActionUtility.initActions(getToolButtons()); // custom execInitForm(); } diff --git a/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/IForm.java b/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/IForm.java index 851e71dbeb..1c6557705c 100644 --- a/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/IForm.java +++ b/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/IForm.java @@ -531,8 +531,34 @@ public interface IForm extends IPropertyObserver, ITypeWithSettableClassId { */ void setFormStored(boolean b); + /** + * Returns a read only list of all tool buttons + * + * @return list of all tool buttons + * @since Scout 4.0.0-M7 + */ + List<IToolButton> getToolButtons(); + + /** + * @deprecated use {@link #getToolButtons()} instead. will be removed with Scout 4.0.0-RC1 + */ + @Deprecated List<IToolButton> getToolbuttons(); + /** + * Returns the tool button identified with the {@link IToolButton} class + * + * @param clazz + * the class of the tool button + * @return toolbutton + * @since Scout 4.0.0-M7 + */ + IToolButton getToolButtonByClass(Class<? extends IToolButton> clazz); + + /** + * @deprecated use {@link #getToolButtonByClass()} instead. will be removed with Scout 4.0.0-RC1 + */ + @Deprecated IToolButton getToolbuttonByClass(Class<? extends IToolButton> clazz); Object getProperty(String name); diff --git a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/window/AbstractRwtScoutPart.java b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/window/AbstractRwtScoutPart.java index 8c5bc10cd3..3ba31bc3e7 100644 --- a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/window/AbstractRwtScoutPart.java +++ b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/window/AbstractRwtScoutPart.java @@ -143,7 +143,7 @@ public abstract class AbstractRwtScoutPart implements IRwtScoutPart { if (uiForm == null) { return; } - List<IToolButton> toolbuttons = ActionUtility.visibleNormalizedActions(getScoutObject().getToolbuttons()); + List<IToolButton> toolbuttons = ActionUtility.visibleNormalizedActions(getScoutObject().getToolButtons()); if (!toolbuttons.isEmpty()) { IToolBarManager toolBarManager = uiForm.getToolBarManager(); for (IToolButton b : toolbuttons) { diff --git a/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/window/desktop/editor/AbstractScoutEditorPart.java b/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/window/desktop/editor/AbstractScoutEditorPart.java index 35c66a1742..defc933ad7 100644 --- a/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/window/desktop/editor/AbstractScoutEditorPart.java +++ b/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/window/desktop/editor/AbstractScoutEditorPart.java @@ -132,7 +132,7 @@ public abstract class AbstractScoutEditorPart extends EditorPart implements ISwt * */ protected void updateToolbarActionsFromScout() { - List<IToolButton> toolbuttons = ActionUtility.visibleNormalizedActions(getForm().getToolbuttons()); + List<IToolButton> toolbuttons = ActionUtility.visibleNormalizedActions(getForm().getToolButtons()); if (!toolbuttons.isEmpty()) { IToolBarManager toolBarManager = getRootForm().getToolBarManager(); if (getForm().getToolbarLocation() == IForm.TOOLBAR_VIEW_PART) { diff --git a/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/window/desktop/view/AbstractScoutView.java b/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/window/desktop/view/AbstractScoutView.java index 5cbca6e846..4b1febb7d9 100644 --- a/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/window/desktop/view/AbstractScoutView.java +++ b/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/window/desktop/view/AbstractScoutView.java @@ -198,7 +198,7 @@ public abstract class AbstractScoutView extends ViewPart implements ISwtScoutPar * */ protected void updateToolbarActionsFromScout() { - List<IToolButton> toolbuttons = ActionUtility.visibleNormalizedActions(getForm().getToolbuttons()); + List<IToolButton> toolbuttons = ActionUtility.visibleNormalizedActions(getForm().getToolButtons()); if (!toolbuttons.isEmpty()) { IToolBarManager toolBarManager = getRootForm().getToolBarManager(); if (getForm().getToolbarLocation() == IForm.TOOLBAR_VIEW_PART) { diff --git a/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/window/dialog/SwtScoutDialog.java b/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/window/dialog/SwtScoutDialog.java index ebb3c4c969..c6c065d7db 100644 --- a/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/window/dialog/SwtScoutDialog.java +++ b/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/window/dialog/SwtScoutDialog.java @@ -167,7 +167,7 @@ public class SwtScoutDialog extends Dialog implements ISwtScoutPart { * */ protected void updateToolbarActionsFromScout() { - List<IToolButton> toolbuttons = ActionUtility.visibleNormalizedActions(getForm().getToolbuttons()); + List<IToolButton> toolbuttons = ActionUtility.visibleNormalizedActions(getForm().getToolButtons()); if (!toolbuttons.isEmpty()) { IToolBarManager toolBarManager = getRootForm().getToolBarManager(); for (IToolButton b : toolbuttons) { |
