r1128 - in trunk: . src/main/java/org/ourproject/kune/platf/client/actions/ui src/main/java/org/ourproject/kune/platf/client/services src/main/java/org/ourproject/kune/platf/client/ui/img src/main/java/org/ourproject/kune/platf/client/ui/rte/basic src/main/java/org/ourproject/kune/platf/client/ui/rte/saving src/main/java/org/ourproject/kune/workspace/client src/main/java/org/ourproject/kune/workspace/client/editor src/main/java/org/ourproject/kune/workspace/client/i18n src/main/java/org/ourpr
Author: vjrj Date: 2009-06-13 02:43:29 +0200 (Sat, 13 Jun 2009) New Revision: 1128 Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensiblePresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensibleView.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractComposedGuiItem.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/BasicGuiBindings.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/IsActionExtensible.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kune-icon16.png trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/language.png trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/SiteOptionsI18nTranslatorAction.java Removed: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractComplexGuiItem.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/BasicGuiBinding.java Modified: trunk/pom.xml trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuGui.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ComplexToolbar.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/GuiActionDescrip.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuBinding.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuDescriptor.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuItemDescriptor.java trunk/src/main/java/org/ourproject/kune/platf/client/services/PlatformModule.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditor.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorView.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/saving/RTESavingEditorPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java trunk/src/main/java/org/ourproject/kune/workspace/client/editor/ContentEditorPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptions.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsView.java Log: Complete - task Hello World updated and Application Boot improved Complete - task SiteOptions use of new Actions class Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/pom.xml 2009-06-13 00:43:29 UTC (rev 1128) @@ -121,6 +121,7 @@ </dependency> <dependency> <groupId>org.xwiki.platform</groupId> + <!-- https://yui-ext.com/forum/showthread.php?t=5762 --> <artifactId>xwiki-web-gwt-dom</artifactId> <version>2.0-SNAPSHOT-g164</version> </dependency> Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensiblePresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensiblePresenter.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensiblePresenter.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -0,0 +1,19 @@ +package org.ourproject.kune.platf.client.actions.ui; + +public abstract class AbstractActionExtensiblePresenter implements IsActionExtensible { + + public abstract void addAction(final GuiActionDescrip descriptor); + + public void addActionCollection(final GuiActionDescCollection descriptors) { + for (final GuiActionDescrip descriptor : descriptors) { + addAction(descriptor); + } + } + + public void addActions(final GuiActionDescrip... descriptors) { + for (final GuiActionDescrip descriptor : descriptors) { + addAction(descriptor); + } + } + +} Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensibleView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensibleView.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensibleView.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -0,0 +1,9 @@ +package org.ourproject.kune.platf.client.actions.ui; + +import org.ourproject.kune.platf.client.View; + +public interface AbstractActionExtensibleView extends View { + + void addAction(GuiActionDescrip descriptor); + +} Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractComplexGuiItem.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractComplexGuiItem.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractComplexGuiItem.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -1,56 +0,0 @@ -package org.ourproject.kune.platf.client.actions.ui; - -import java.util.List; - -import org.ourproject.kune.platf.client.actions.AbstractAction; -import org.ourproject.kune.platf.client.actions.InputMap; -import org.ourproject.kune.platf.client.actions.KeyStroke; - -import com.google.gwt.user.client.Event; -import com.google.gwt.user.client.ui.Composite; - -public abstract class AbstractComplexGuiItem extends Composite { - - private GuiActionDescCollection guiItems; - private InputMap inputMap; - - public void add(final GuiActionDescrip... descriptors) { - for (final GuiActionDescrip descriptor : descriptors) { - getGuiItems().add(descriptor); - } - } - - public void addAll(final GuiActionDescCollection items) { - getGuiItems().addAll(items); - } - - public void addAll(final List<GuiActionDescrip> items) { - getGuiItems().addAll(items); - } - - public void addShortcut(final KeyStroke key, final AbstractAction action) { - getInputMap().put(key, action); - } - - public AbstractAction getAction(final Event event) { - return getInputMap().get(KeyStroke.getKeyStrokeForEvent(event)); - } - - public GuiActionDescCollection getGuiItems() { - if (guiItems == null) { - guiItems = new GuiActionDescCollection(); - } - return guiItems; - } - - public void setInputMap(final InputMap inputMap) { - this.inputMap = inputMap; - } - - private InputMap getInputMap() { - if (inputMap == null) { - inputMap = new InputMap(); - } - return inputMap; - } -} Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractComposedGuiItem.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractComposedGuiItem.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractComposedGuiItem.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -0,0 +1,63 @@ +package org.ourproject.kune.platf.client.actions.ui; + +import java.util.List; + +import org.ourproject.kune.platf.client.errors.UIException; + +import com.google.gwt.user.client.ui.Composite; + +public abstract class AbstractComposedGuiItem extends Composite { + private GuiActionDescCollection guiItems; + private final GuiBindingsRegister bindings; + + public AbstractComposedGuiItem(final GuiBindingsRegister bindings) { + super(); + this.bindings = bindings; + } + + public void add(final GuiActionDescrip... descriptors) { + for (final GuiActionDescrip descriptor : descriptors) { + addAction(descriptor); + } + } + + public void addAction(final GuiActionDescrip descriptor) { + getGuiItems().add(descriptor); + beforeAddWidget(descriptor); + } + + public void addAll(final GuiActionDescCollection descriptors) { + for (final GuiActionDescrip descriptor : descriptors) { + addAction(descriptor); + } + } + + public void addAll(final List<GuiActionDescrip> descriptors) { + for (final GuiActionDescrip descriptor : descriptors) { + addAction(descriptor); + } + } + + public GuiActionDescCollection getGuiItems() { + if (guiItems == null) { + guiItems = new GuiActionDescCollection(); + } + return guiItems; + } + + protected abstract void addWidget(AbstractGuiItem item, int position, boolean visible); + + protected void beforeAddWidget(final GuiActionDescrip descrip) { + if (descrip.mustBeAdded()) { + final GuiBinding binding = bindings.get(descrip.getType()); + if (binding == null) { + throw new UIException("Unknown binding for: " + descrip); + } else { + final AbstractGuiItem item = binding.create(descrip); + if (binding.isAttachable()) { + addWidget(item, descrip.getPosition(), descrip.mustBeVisible()); + } + } + } + } +} Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuGui.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuGui.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuGui.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -25,4 +25,12 @@ menu.insert(position, item); } + public void show(final int x, final int y) { + menu.showAt(x, y); + } + + public void show(final String id) { + menu.show(id); + } + } \ No newline at end of file Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -110,6 +110,7 @@ } private String createShortCut(final KeyStroke key, final String style) { + // See: https://yui-ext.com/forum/showthread.php?t=5762 final Element keyLabel = DOM.createSpan(); keyLabel.setId(style); keyLabel.setInnerText(key.toString()); Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/BasicGuiBinding.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/BasicGuiBinding.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/BasicGuiBinding.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -1,16 +0,0 @@ -package org.ourproject.kune.platf.client.actions.ui; - -public class BasicGuiBinding { - - public BasicGuiBinding(final GuiBindingsRegister bindings) { - bindings.register(MenuDescriptor.class, new MenuBinding()); - final MenuItemBinding menuItemBinding = new MenuItemBinding(); - bindings.register(MenuRadioItemDescriptor.class, menuItemBinding); - bindings.register(MenuCheckItemDescriptor.class, menuItemBinding); - bindings.register(MenuItemDescriptor.class, menuItemBinding); - bindings.register(MenuSeparatorDescriptor.class, new MenuSeparatorBinding()); - bindings.register(PushButtonDescriptor.class, new PushButtonBinding()); - bindings.register(ButtonDescriptor.class, new ButtonBinding()); - bindings.register(ToolbarSeparatorDescriptor.class, new ToolbarSeparatorBinding()); - } -} Copied: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/BasicGuiBindings.java (from rev 1124, trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/BasicGuiBinding.java) =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/BasicGuiBinding.java 2009-06-10 14:37:53 UTC (rev 1124) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/BasicGuiBindings.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -0,0 +1,16 @@ +package org.ourproject.kune.platf.client.actions.ui; + +public class BasicGuiBindings { + + public BasicGuiBindings(final GuiBindingsRegister bindings) { + final MenuItemBinding menuItemBinding = new MenuItemBinding(); + bindings.register(MenuDescriptor.class, new MenuBinding()); + bindings.register(MenuRadioItemDescriptor.class, menuItemBinding); + bindings.register(MenuCheckItemDescriptor.class, menuItemBinding); + bindings.register(MenuItemDescriptor.class, menuItemBinding); + bindings.register(MenuSeparatorDescriptor.class, new MenuSeparatorBinding()); + bindings.register(PushButtonDescriptor.class, new PushButtonBinding()); + bindings.register(ButtonDescriptor.class, new ButtonBinding()); + bindings.register(ToolbarSeparatorDescriptor.class, new ToolbarSeparatorBinding()); + } +} Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ComplexToolbar.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ComplexToolbar.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ComplexToolbar.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -1,39 +1,18 @@ package org.ourproject.kune.platf.client.actions.ui; -import java.util.List; - import org.ourproject.kune.platf.client.View; -import org.ourproject.kune.platf.client.errors.UIException; import org.ourproject.kune.platf.client.ui.FlowToolbar; -public class ComplexToolbar extends AbstractComplexGuiItem implements View { +public class ComplexToolbar extends AbstractComposedGuiItem implements View { private final FlowToolbar toolbar; - private final GuiBindingsRegister bindings; public ComplexToolbar(final GuiBindingsRegister bindings) { - super(); - this.bindings = bindings; + super(bindings); toolbar = new FlowToolbar(); initWidget(toolbar); } - @Override - public void add(final GuiActionDescrip... descriptors) { - for (final GuiActionDescrip descrip : descriptors) { - super.add(descrip); - addWidget(descrip); - } - } - - @Override - public void addAll(final List<GuiActionDescrip> descriptors) { - super.addAll(descriptors); - for (final GuiActionDescrip descritor : descriptors) { - addWidget(descritor); - } - } - public void addFill() { toolbar.addFill(); } @@ -54,26 +33,15 @@ toolbar.setNormalStyle(); } - private void addWidget(final GuiActionDescrip descrip) { - if (descrip.getAddCondition().mustBeAdded()) { - final boolean visible = descrip.getVisibleCondition().mustBeVisible(); - final GuiBinding binding = bindings.get(descrip.getType()); - if (binding == null) { - throw new UIException("Unknown binding for: " + descrip); - } else { - final AbstractGuiItem item = binding.create(descrip); - if (binding.isAttachable()) { - item.addStyleName("kune-floatleft"); - final int position = descrip.getPosition(); - if (position == GuiActionDescrip.NO_POSITION) { - toolbar.add(item); - } else { - toolbar.insert(item, position); - } - item.setVisible(visible); - } - } + @Override + protected void addWidget(final AbstractGuiItem item, final int position, final boolean visible) { + item.addStyleName("kune-floatleft"); + if (position == GuiActionDescrip.NO_POSITION) { + toolbar.add(item); + } else { + toolbar.insert(item, position); } + item.setVisible(visible); } } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/GuiActionDescrip.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/GuiActionDescrip.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/GuiActionDescrip.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -98,6 +98,22 @@ return parent != NO_PARENT; } + public boolean mustBeAdded() { + boolean result = false; + if (addCondition != null) { + result = addCondition.mustBeAdded(); + } + return result; + } + + public boolean mustBeVisible() { + boolean result = false; + if (visibleCondition != null) { + result = visibleCondition.mustBeVisible(); + } + return result; + } + /** * Sets the value associated with the specified key. * Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/IsActionExtensible.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/IsActionExtensible.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/IsActionExtensible.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -0,0 +1,29 @@ +package org.ourproject.kune.platf.client.actions.ui; + +public interface IsActionExtensible { + + /** + * Adds a action description + * + * @param action + * the action + */ + void addAction(GuiActionDescrip action); + + /** + * Adds some action descriptions + * + * @param actions + * the actions + */ + void addActionCollection(GuiActionDescCollection actions); + + /** + * Adds some action descriptions + * + * @param action + * the action + */ + void addActions(GuiActionDescrip... actions); + +} Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuBinding.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuBinding.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuBinding.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -25,7 +25,7 @@ isSubmenu = true; } else { // Is main parent menu - final MenuGui menu = new MenuGui(descriptor); + final MenuGui menu = new MenuGui((MenuDescriptor) descriptor); descriptor.putValue(UI_MENU, menu); item = menu; isSubmenu = false; Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuDescriptor.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuDescriptor.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuDescriptor.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -9,6 +9,12 @@ public static final String MENU_HIDE = "hidemenu"; + private boolean standalone; + + public MenuDescriptor() { + this(new BaseAction(null, null, null)); + } + public MenuDescriptor(final AbstractAction action) { this(NO_PARENT, action); } @@ -17,6 +23,7 @@ super(action); setParent(parent); action.putValue(MENU_HIDE, false); + standalone = false; } public MenuDescriptor(final String text) { @@ -44,6 +51,21 @@ action.putValue(MENU_HIDE, !((Boolean) action.getValue(MENU_HIDE))); } + public boolean isStandalone() { + return standalone; + } + + /** + * Sets the standalone property (if the menu should have button (for a + * toolbar) or is a menu independent. + * + * @param standalone + * the new standalone + */ + public void setStandalone(final boolean standalone) { + this.standalone = standalone; + } + public void setText(final String text) { action.putValue(Action.NAME, text); } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -9,14 +9,20 @@ public class MenuGui extends AbstractMenuGui { - private final ToolbarButton button; + private final boolean notStandAlone; + private ToolbarButton button = null; - public MenuGui(final GuiActionDescrip descriptor) { + public MenuGui(final MenuDescriptor descriptor) { super(); - button = new ToolbarButton(); - button.setMenu(menu); setAction(descriptor.action); - initWidget(button); + // Standalone menus are menus without and associated button in a toolbar + // (sometimes, a menu showed in a grid, or other special widgets) + notStandAlone = !descriptor.isStandalone(); + if (notStandAlone) { + button = new ToolbarButton(); + button.setMenu(menu); + initWidget(button); + } descriptor.action.addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(final PropertyChangeEvent event) { if (event.getPropertyName().equals(MenuDescriptor.MENU_HIDE)) { @@ -26,37 +32,37 @@ }); } - public void add(final SubMenuGui submenu) { - menu.addItem(submenu.getMenuItem()); - }; - - public void insert(final int position, final SubMenuGui submenu) { - menu.insert(position, submenu.getMenuItem()); - } - @Override public void setEnabled(final boolean enabled) { - if (enabled) { - button.enable(); - } else { - button.disable(); + if (notStandAlone) { + if (enabled) { + button.enable(); + } else { + button.disable(); + } } } @Override public void setIcon(final ImageResource imageResource) { - if (imageResource != null) { - button.setIcon(ImgConstants.PATH_PREFIX + imageResource.getName() + ".png"); + if (notStandAlone) { + if (imageResource != null) { + button.setIcon(ImgConstants.PATH_PREFIX + imageResource.getName() + ".png"); + } } } @Override public void setText(final String text) { - button.setText(text); + if (notStandAlone) { + button.setText(text); + } } @Override public void setToolTipText(final String tooltip) { - button.setTooltip(tooltip); + if (notStandAlone) { + button.setTooltip(tooltip); + } } } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuItemDescriptor.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuItemDescriptor.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuItemDescriptor.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -4,6 +4,10 @@ public class MenuItemDescriptor extends GuiActionDescrip { + public MenuItemDescriptor(final AbstractAction action) { + super(action); + } + public MenuItemDescriptor(final MenuDescriptor parent, final AbstractAction action) { super(action); setParent(parent); Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/PlatformModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/services/PlatformModule.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/PlatformModule.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -19,7 +19,7 @@ \*/ package org.ourproject.kune.platf.client.services; -import org.ourproject.kune.platf.client.actions.ui.BasicGuiBinding; +import org.ourproject.kune.platf.client.actions.ui.BasicGuiBindings; import org.ourproject.kune.platf.client.actions.ui.GuiBindingsRegister; import org.ourproject.kune.platf.client.app.Application; import org.ourproject.kune.platf.client.app.ApplicationComponentGroup; @@ -439,10 +439,10 @@ return new ExternalMediaRegistry(i(Session.class).getInitData().getExtMediaDescrips()); }}); - register(Singleton.class, new Factory<BasicGuiBinding>(BasicGuiBinding.class) { + register(Singleton.class, new Factory<BasicGuiBindings>(BasicGuiBindings.class) { @Override - public BasicGuiBinding create() { - return new BasicGuiBinding(i(GuiBindingsRegister.class)); + public BasicGuiBindings create() { + return new BasicGuiBindings(i(GuiBindingsRegister.class)); } }); @@ -453,7 +453,7 @@ } @Override public void onAfterCreated(final GuiBindingsRegister instance) { - i(BasicGuiBinding.class); + i(BasicGuiBindings.class); } }); Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -12,4 +12,10 @@ @Resource("info.png") ImageResource info(); + @Resource("kune-icon16.png") + ImageResource kuneIcon16(); + + @Resource("language.png") + ImageResource language(); + } \ No newline at end of file Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kune-icon16.png =================================================================== (Binary files differ) Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kune-icon16.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/language.png =================================================================== (Binary files differ) Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/language.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditor.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditor.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditor.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -3,9 +3,9 @@ import org.ourproject.kune.platf.client.View; import org.ourproject.kune.platf.client.actions.AbstractAction; import org.ourproject.kune.platf.client.actions.KeyStroke; -import org.ourproject.kune.platf.client.actions.ui.GuiActionDescCollection; import org.ourproject.kune.platf.client.actions.ui.GuiActionDescrip; import org.ourproject.kune.platf.client.actions.ui.GuiAddCondition; +import org.ourproject.kune.platf.client.actions.ui.IsActionExtensible; import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor; import com.calclab.suco.client.events.Listener0; @@ -14,7 +14,7 @@ /** * The Interface RTEditor. */ -public interface RTEditor { +public interface RTEditor extends IsActionExtensible { /** * The TOPBAR location used in {@link GuiActionDescrip#setLocation(String)} @@ -35,30 +35,6 @@ String LINKCTX = "rte-linkctx"; /** - * Adds a action description - * - * @param action - * the action - */ - void addAction(GuiActionDescrip action); - - /** - * Adds some action descriptions - * - * @param actions - * the actions - */ - void addActionCollection(GuiActionDescCollection actions); - - /** - * Adds some action descriptions - * - * @param action - * the action - */ - void addActions(GuiActionDescrip... actions); - - /** * Adds the on edit listener (fired when the user do some edit). * * @param listener Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -6,9 +6,9 @@ import org.ourproject.kune.platf.client.View; import org.ourproject.kune.platf.client.actions.AbstractAction; import org.ourproject.kune.platf.client.actions.ActionEvent; -import org.ourproject.kune.platf.client.actions.ui.AbstractComplexGuiItem; +import org.ourproject.kune.platf.client.actions.InputMap; +import org.ourproject.kune.platf.client.actions.KeyStroke; import org.ourproject.kune.platf.client.actions.ui.ComplexToolbar; -import org.ourproject.kune.platf.client.actions.ui.GuiActionDescCollection; import org.ourproject.kune.platf.client.actions.ui.GuiActionDescrip; import org.ourproject.kune.platf.client.actions.ui.GuiBindingsRegister; import org.ourproject.kune.platf.client.errors.UIException; @@ -38,8 +38,9 @@ import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.DeferredCommand; import com.google.gwt.user.client.Event; +import com.google.gwt.user.client.ui.Composite; -public class RTEditorPanel extends AbstractComplexGuiItem implements RTEditorView, FocusHandler, BlurHandler { +public class RTEditorPanel extends Composite implements RTEditorView, FocusHandler, BlurHandler { private static final Element NO_ELEMENT = null; private final I18nUITranslationService i18n; @@ -51,18 +52,18 @@ private final RichTextArea rta; private final ComplexToolbar topBar; private final ComplexToolbar sndBar; + private InputMap inputMap; public RTEditorPanel(final RTEditorPresenter presenter, final I18nUITranslationService i18n, - final GlobalShortcutRegister globalShortcutReg, final GuiBindingsRegister bindReg) { - super(); + final GlobalShortcutRegister globalShortcutReg, final GuiBindingsRegister bindings) { this.presenter = presenter; this.i18n = i18n; this.globalShortcutReg = globalShortcutReg; rta = new RichTextArea(); basic = rta.getBasicFormatter(); extended = rta.getExtendedFormatter(); - topBar = new ComplexToolbar(bindReg); - sndBar = new ComplexToolbar(bindReg); + topBar = new ComplexToolbar(bindings); + sndBar = new ComplexToolbar(bindings); sndBar.setNormalStyle(); rta.addFocusHandler(this); rta.addBlurHandler(this); @@ -72,23 +73,20 @@ setHeight("100%"); } - public void addActions(final GuiActionDescCollection items) { - super.addAll(items); - for (final GuiActionDescrip item : items) { - final String location = item.getLocation(); - if (location == null) { - throw new UIException("Unknown location in action item: " + item); - } - if (location.equals(RTEditor.TOPBAR)) { - topBar.add(item); - } else if (location.equals(RTEditor.SNDBAR)) { - sndBar.add(item); - } else if (location.equals(RTEditor.LINKCTX)) { - linkCtxMenu.add(item); - } else { - throw new UIException("Unknown location in action item: " + item); - } + public void addAction(final GuiActionDescrip item) { + final String location = item.getLocation(); + if (location == null) { + throw new UIException("Unknown location in action item: " + item); } + if (location.equals(RTEditor.TOPBAR)) { + topBar.addAction(item); + } else if (location.equals(RTEditor.SNDBAR)) { + sndBar.addAction(item); + } else if (location.equals(RTEditor.LINKCTX)) { + linkCtxMenu.add(item); + } else { + throw new UIException("Unknown location in action item: " + item); + } } public void adjustSize(final int height) { @@ -299,7 +297,7 @@ super.onBrowserEvent(event); break; case Event.ONKEYPRESS: - final AbstractAction rtaActionItem = super.getAction(event); + final AbstractAction rtaActionItem = inputMap.get(KeyStroke.getKeyStrokeForEvent(event)); // FIXME // final Action actionItem = rtaActionItem == null ? // globalShortcutReg.get(event) : rtaActionItem; @@ -379,6 +377,10 @@ rta.setHTML(html); } + public void setInputMap(final InputMap inputMap) { + this.inputMap = inputMap; + } + public void setText(final String text) { rta.setText(text); } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -15,6 +15,7 @@ import org.ourproject.kune.platf.client.actions.ActionEvent; import org.ourproject.kune.platf.client.actions.InputMap; import org.ourproject.kune.platf.client.actions.KeyStroke; +import org.ourproject.kune.platf.client.actions.ui.AbstractActionExtensiblePresenter; import org.ourproject.kune.platf.client.actions.ui.ButtonDescriptor; import org.ourproject.kune.platf.client.actions.ui.GuiActionDescCollection; import org.ourproject.kune.platf.client.actions.ui.GuiActionDescrip; @@ -52,7 +53,7 @@ import com.google.gwt.libideas.resources.client.ImageResource; import com.google.gwt.user.client.Event; -public class RTEditorPresenter implements RTEditor { +public class RTEditorPresenter extends AbstractActionExtensiblePresenter implements RTEditor { public class BackgroundColorAction extends AbstractExtendedAction { @@ -710,25 +711,12 @@ fontActions = new HashMap<String, MenuCheckItemDescriptor>(); } + @Override public void addAction(final GuiActionDescrip descriptor) { actions.add(descriptor); checkForMenus(descriptor); } - public void addActionCollection(final GuiActionDescCollection descriptors) { - actions.addAll(descriptors); - for (final GuiActionDescrip descriptor : descriptors) { - checkForMenus(descriptor); - } - } - - public void addActions(final GuiActionDescrip... descriptors) { - actions.add(descriptors); - for (final GuiActionDescrip descriptor : descriptors) { - checkForMenus(descriptor); - } - } - public void addOnEditListener(final Listener0 listener) { onEdit.add(listener); } @@ -740,7 +728,7 @@ public void attach() { if (!attached) { attached = true; - view.addActions(actions); + attachActions(); view.setInputMap(inputMap); } } @@ -884,6 +872,12 @@ } } + private void attachActions() { + for (final GuiActionDescrip descriptor : actions) { + view.addAction(descriptor); + } + } + private void checkForMenus(final GuiActionDescrip descriptor) { if (descriptor instanceof MenuDescriptor) { menus.add((MenuDescriptor) descriptor); @@ -1098,7 +1092,7 @@ setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('I'), Keyboard.MODIFIER_ALT), devInfoAction); actions = new GuiActionDescCollection(); - actions.add(fileMenu, editMenu, formatMenu, insertMenu, undo, redo, editMenuSep, copy, cut, paste, editMenuSep, + addActions(fileMenu, editMenu, formatMenu, insertMenu, undo, redo, editMenuSep, copy, cut, paste, editMenuSep, select, editMenuSep, editHtml, editLink, img, insertTable, insertMedia, insertMenuSep, insertSpecialChar, comment, hline, removeFormat, formatMenuSep, insertMenuSep, undoBtn, redoBtn, sndbarSep, bold, italic, underline, strikethrough, sndbarSep, justifyLeft, justifyCentre, justifyRight, Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorView.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorView.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -2,14 +2,12 @@ import org.ourproject.kune.platf.client.View; import org.ourproject.kune.platf.client.actions.InputMap; -import org.ourproject.kune.platf.client.actions.ui.GuiActionDescCollection; +import org.ourproject.kune.platf.client.actions.ui.AbstractActionExtensibleView; import org.ourproject.kune.platf.client.ui.rte.RichTextArea.FontSize; import org.ourproject.kune.platf.client.ui.rte.insertlink.LinkInfo; -public interface RTEditorView extends View { +public interface RTEditorView extends AbstractActionExtensibleView { - void addActions(GuiActionDescCollection actions); - void adjustSize(int height); boolean canBeBasic(); Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/saving/RTESavingEditorPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/saving/RTESavingEditorPresenter.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/saving/RTESavingEditorPresenter.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -262,12 +262,12 @@ saveClose.setLocation(RTEditor.TOPBAR); saveCloseBtn.setLocation(RTEditor.TOPBAR); - super.addAction(saveMenu); - super.addAction(saveBtn); - super.addAction(autoSaveItem); - super.addAction(saveClose); - super.addAction(saveCloseBtn); - super.addAction(closeItem); + addAction(saveMenu); + addAction(saveBtn); + addAction(autoSaveItem); + addAction(saveClose); + addAction(saveCloseBtn); + addAction(closeItem); } private void enableSaveBtn(final boolean enabled) { Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -49,9 +49,9 @@ import org.ourproject.kune.platf.client.state.Session; import org.ourproject.kune.platf.client.state.StateManager; import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils; +import org.ourproject.kune.platf.client.ui.img.ImgResources; import org.ourproject.kune.platf.client.ui.noti.NotifyUser; import org.ourproject.kune.platf.client.ui.palette.ColorWebSafePalette; -import org.ourproject.kune.platf.client.ui.rte.TestRTEDialog; import org.ourproject.kune.platf.client.ui.rte.edithtml.EditHtmlDialog; import org.ourproject.kune.platf.client.ui.rte.img.RTEImgResources; import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageDialog; @@ -104,6 +104,7 @@ import org.ourproject.kune.workspace.client.i18n.LanguageSelectorPanel; import org.ourproject.kune.workspace.client.i18n.LanguageSelectorPresenter; import org.ourproject.kune.workspace.client.i18n.LanguageSelectorView; +import org.ourproject.kune.workspace.client.i18n.SiteOptionsI18nTranslatorAction; import org.ourproject.kune.workspace.client.licensefoot.EntityLicensePanel; import org.ourproject.kune.workspace.client.licensefoot.EntityLicensePresenter; import org.ourproject.kune.workspace.client.licensewizard.LicenseChangeAction; @@ -375,9 +376,10 @@ register(ApplicationComponentGroup.class, new Factory<SiteOptions>(SiteOptions.class) { @Override public SiteOptions create() { - final SiteOptionsPresenter presenter = new SiteOptionsPresenter(); - final SiteOptionsPanel panel = new SiteOptionsPanel(presenter, i(WorkspaceSkeleton.class), - i(I18nUITranslationService.class), p(I18nTranslator.class), p(TestRTEDialog.class)); + final SiteOptionsPresenter presenter = new SiteOptionsPresenter(i(I18nUITranslationService.class), + i(ImgResources.class)); + final SiteOptionsPanel panel = new SiteOptionsPanel(i(WorkspaceSkeleton.class), + i(I18nUITranslationService.class), i(GuiBindingsRegister.class)); presenter.init(panel); return presenter; } @@ -572,8 +574,8 @@ i(Session.class), p(SocialNetworkServiceAsync.class), i(WsThemePresenter.class), i(GroupActionRegistry.class), i(ActionParticipationToolbar.class), p(FileDownloadUtils.class)); final ParticipationSummaryView view = new ParticipationSummaryPanel(presenter, - i(I18nUITranslationService.class), i(WorkspaceSkeleton.class), - (i(ActionParticipationToolbar.class).getView())); + i(I18nUITranslationService.class), i(WorkspaceSkeleton.class), i( + ActionParticipationToolbar.class).getView()); presenter.init(view); return presenter; } @@ -762,6 +764,15 @@ } }); + register(ApplicationComponentGroup.class, new Factory<SiteOptionsI18nTranslatorAction>( + SiteOptionsI18nTranslatorAction.class) { + @Override + public SiteOptionsI18nTranslatorAction create() { + return new SiteOptionsI18nTranslatorAction(i(SiteOptions.class), i(I18nTranslationService.class), + i(ImgResources.class), p(I18nTranslator.class)); + } + }); + register(Singleton.class, new Factory<SignIn>(SignIn.class) { @Override public SignIn create() { Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/ContentEditorPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/ContentEditorPresenter.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/ContentEditorPresenter.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -137,7 +137,7 @@ final KeyStroke key = KeyStroke.getKeyStroke(Keyboard.KEY_F2, 0); renameAction.putValue(Action.ACCELERATOR_KEY, key); super.setActionShortcut(key, renameAction); - super.addAction(renameItem); + addAction(renameItem); } private void adjHeight(final int height) { Added: trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/SiteOptionsI18nTranslatorAction.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/SiteOptionsI18nTranslatorAction.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/SiteOptionsI18nTranslatorAction.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -0,0 +1,31 @@ +package org.ourproject.kune.workspace.client.i18n; + +import org.ourproject.kune.platf.client.actions.AbstractAction; +import org.ourproject.kune.platf.client.actions.Action; +import org.ourproject.kune.platf.client.actions.ActionEvent; +import org.ourproject.kune.platf.client.actions.ui.MenuItemDescriptor; +import org.ourproject.kune.platf.client.i18n.I18nTranslationService; +import org.ourproject.kune.platf.client.ui.img.ImgResources; +import org.ourproject.kune.workspace.client.sitebar.siteoptions.SiteOptions; + +import com.calclab.suco.client.ioc.Provider; + +public class SiteOptionsI18nTranslatorAction extends AbstractAction { + private final Provider<I18nTranslator> translator; + + public SiteOptionsI18nTranslatorAction(final SiteOptions siteOptions, final I18nTranslationService i18n, + final ImgResources img, final Provider<I18nTranslator> translator) { + super(); + this.translator = translator; + putValue(Action.NAME, i18n.t("Help with the translation")); + putValue(Action.SMALL_ICON, img.language()); + final MenuItemDescriptor item = new MenuItemDescriptor(this); + item.setPosition(0); + siteOptions.addAction(item); + } + + public void actionPerformed(final ActionEvent event) { + translator.get().doShowTranslator(); + } + +} Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptions.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptions.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptions.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -19,6 +19,7 @@ \*/ package org.ourproject.kune.workspace.client.sitebar.siteoptions; -public interface SiteOptions { +import org.ourproject.kune.platf.client.actions.ui.IsActionExtensible; +public interface SiteOptions extends IsActionExtensible { } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPanel.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPanel.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -19,81 +19,52 @@ \*/ package org.ourproject.kune.workspace.client.sitebar.siteoptions; +import org.ourproject.kune.platf.client.actions.ui.AbstractComposedGuiItem; +import org.ourproject.kune.platf.client.actions.ui.AbstractGuiItem; +import org.ourproject.kune.platf.client.actions.ui.AbstractMenuGui; +import org.ourproject.kune.platf.client.actions.ui.GuiBindingsRegister; +import org.ourproject.kune.platf.client.actions.ui.MenuBinding; +import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor; import org.ourproject.kune.platf.client.i18n.I18nUITranslationService; -import org.ourproject.kune.platf.client.ui.KuneWindowUtils; -import org.ourproject.kune.platf.client.ui.rte.TestRTEDialog; -import org.ourproject.kune.workspace.client.i18n.I18nTranslator; import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; -import com.calclab.suco.client.ioc.Provider; -import com.google.gwt.dom.client.Element; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.ui.PushButton; -import com.gwtext.client.core.EventObject; -import com.gwtext.client.widgets.menu.BaseItem; -import com.gwtext.client.widgets.menu.Item; -import com.gwtext.client.widgets.menu.Menu; -import com.gwtext.client.widgets.menu.event.BaseItemListenerAdapter; -public class SiteOptionsPanel implements SiteOptionsView { +public class SiteOptionsPanel extends AbstractComposedGuiItem implements SiteOptionsView { - public SiteOptionsPanel(final SiteOptionsPresenter presenter, final WorkspaceSkeleton ws, - final I18nUITranslationService i18n, final Provider<I18nTranslator> translatorProvider, - final Provider<TestRTEDialog> editor) { + private static final String BTN_ID = "k-sopts-btn-id"; + private AbstractMenuGui menu; + + public SiteOptionsPanel(final WorkspaceSkeleton wspace, final I18nUITranslationService i18n, + final GuiBindingsRegister bindings) { + super(bindings); final PushButton optionsButton = new PushButton(""); // optionsButton.setText(i18n.t("Options")); optionsButton.setHTML(i18n.t("Options") + "<img style=\"vertical-align: middle;\" src=\"images/arrowdown.png\" />"); optionsButton.setStyleName("k-sitebar-labellink"); - ws.getSiteBar().addSeparator(); - ws.getSiteBar().add(optionsButton); - ws.getSiteBar().addSpacer(); - ws.getSiteBar().addSpacer(); - final Menu optionsMenu = new Menu(); + optionsButton.ensureDebugId(BTN_ID); + wspace.getSiteBar().addSeparator(); + wspace.getSiteBar().add(optionsButton); + wspace.getSiteBar().addSpacer(); + wspace.getSiteBar().addSpacer(); + optionsButton.addClickHandler(new ClickHandler() { public void onClick(final ClickEvent event) { - final Element sender = event.getRelativeElement(); - optionsMenu.showAt(sender.getAbsoluteLeft(), sender.getAbsoluteTop() + 10); + menu.show(optionsButton.getElement().getId()); } }); + } - final Item testRTE = new Item(i18n.t("Test new RTE"), new BaseItemListenerAdapter() { - @Override - public void onClick(final BaseItem item, final EventObject e) { - final TestRTEDialog testRTEDialog = editor.get(); - testRTEDialog.setExtended(true); - testRTEDialog.show(); - } - }, ""); + public void setMenu(final MenuDescriptor menuDescriptor) { + menu = (AbstractMenuGui) menuDescriptor.getValue(MenuBinding.UI_MENU); + } - final Item testRTEbasic = new Item(i18n.t("Test new RTE (basic mode)"), new BaseItemListenerAdapter() { - @Override - public void onClick(final BaseItem item, final EventObject e) { - final TestRTEDialog testRTEDialog = editor.get(); - testRTEDialog.setExtended(false); - testRTEDialog.show(); - } - }, ""); - - final Item linkHelpInTrans = new Item(i18n.t("Help with the translation"), new BaseItemListenerAdapter() { - @Override - public void onClick(final BaseItem item, final EventObject e) { - super.onClick(item, e); - translatorProvider.get().doShowTranslator(); - } - }, "images/language.gif"); - - final Item linkKuneBugs = new Item(i18n.t("Report kune bugs"), new BaseItemListenerAdapter() { - @Override - public void onClick(final BaseItem item, final EventObject e) { - super.onClick(item, e); - KuneWindowUtils.open("http://ourproject.org/tracker/?group_id=407"); - } - }, "images/kuneicon16.gif"); - optionsMenu.addItem(testRTEbasic); - optionsMenu.addItem(testRTE); - optionsMenu.addItem(linkHelpInTrans); - optionsMenu.addItem(linkKuneBugs); + @Override + protected void addWidget(final AbstractGuiItem item, final int position, final boolean visible) { + // Do nothing (menu items are attached automatically to its menu } + } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -20,20 +20,60 @@ package org.ourproject.kune.workspace.client.sitebar.siteoptions; import org.ourproject.kune.platf.client.View; +import org.ourproject.kune.platf.client.actions.AbstractExtendedAction; +import org.ourproject.kune.platf.client.actions.Action; +import org.ourproject.kune.platf.client.actions.ActionEvent; +import org.ourproject.kune.platf.client.actions.ui.AbstractActionExtensiblePresenter; +import org.ourproject.kune.platf.client.actions.ui.GuiActionDescrip; +import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor; +import org.ourproject.kune.platf.client.actions.ui.MenuItemDescriptor; +import org.ourproject.kune.platf.client.i18n.I18nTranslationService; +import org.ourproject.kune.platf.client.ui.KuneWindowUtils; +import org.ourproject.kune.platf.client.ui.img.ImgResources; -public class SiteOptionsPresenter implements SiteOptions { +public class SiteOptionsPresenter extends AbstractActionExtensiblePresenter implements SiteOptions { private SiteOptionsView view; + private MenuDescriptor menuDescriptor; + private final I18nTranslationService i18n; + private final ImgResources img; - public SiteOptionsPresenter() { + public SiteOptionsPresenter(final I18nTranslationService i18n, final ImgResources img) { + super(); + this.i18n = i18n; + this.img = img; } + @Override + public void addAction(final GuiActionDescrip descriptor) { + descriptor.setParent(menuDescriptor); + view.addAction(descriptor); + } + public View getView() { return view; } public void init(final SiteOptionsView view) { this.view = view; + createActions(); } + private void createActions() { + menuDescriptor = new MenuDescriptor(); + menuDescriptor.setStandalone(true); + view.addAction(menuDescriptor); + view.setMenu(menuDescriptor); + + final AbstractExtendedAction bugsAction = new AbstractExtendedAction() { + public void actionPerformed(final ActionEvent event) { + KuneWindowUtils.open("http://ourproject.org/tracker/?group_id=407"); + } + }; + bugsAction.putValue(Action.NAME, i18n.t("Report kune bugs")); + bugsAction.putValue(Action.SMALL_ICON, img.kuneIcon16()); + final MenuItemDescriptor item = new MenuItemDescriptor(bugsAction); + addAction(item); + } + } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsView.java 2009-06-12 00:39:51 UTC (rev 1127) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsView.java 2009-06-13 00:43:29 UTC (rev 1128) @@ -19,7 +19,11 @@ \*/ package org.ourproject.kune.workspace.client.sitebar.siteoptions; -import org.ourproject.kune.platf.client.View; +import org.ourproject.kune.platf.client.actions.ui.AbstractActionExtensibleView; +import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor; -public interface SiteOptionsView extends View { +public interface SiteOptionsView extends AbstractActionExtensibleView { + + void setMenu(MenuDescriptor menuDescriptor); + }
participants (1)
-
vjrj