r1316 - in trunk/src/main/java/cc/kune: common/client/actions/ui/descrip common/client/tooltip common/client/ui common/public core/client core/client/rpcservices core/public core/server/rpc core/server/utils docs/client/actions docs/client/viewers gspace/client gspace/client/tool wave/client wave/server
Author: vjrj_ Date: 2011-04-18 13:45:11 +0200 (Mon, 18 Apr 2011) New Revision: 1316 Added: trunk/src/main/java/cc/kune/common/client/ui/UiUtils.java trunk/src/main/java/cc/kune/docs/client/actions/FolderGoUpBtn.java trunk/src/main/java/cc/kune/docs/client/actions/NewDocBtn.java trunk/src/main/java/cc/kune/docs/client/actions/NewFolderBtn.java trunk/src/main/java/cc/kune/docs/client/actions/OpenContentBtn.java Removed: trunk/src/main/java/cc/kune/docs/client/actions/DocsGoUpBtn.java Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescrip.java trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java trunk/src/main/java/cc/kune/common/client/ui/BasicThumb.java trunk/src/main/java/cc/kune/common/public/kune-common.css trunk/src/main/java/cc/kune/core/client/CoreGinModule.java trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java trunk/src/main/java/cc/kune/core/public/ws.css trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java trunk/src/main/java/cc/kune/core/server/utils/FilenameUtils.java trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java trunk/src/main/java/cc/kune/docs/client/viewers/DocViewerPanel.java trunk/src/main/java/cc/kune/docs/client/viewers/DocViewerPresenter.java trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPanel.java trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPresenter.java trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java trunk/src/main/java/cc/kune/gspace/client/tool/ContentViewerSelector.java trunk/src/main/java/cc/kune/wave/client/WebClient.java trunk/src/main/java/cc/kune/wave/server/CustomUserRegistrationServlet.java trunk/src/main/java/cc/kune/wave/server/WaveMain.java Log: New docs actions Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -26,6 +26,7 @@ import cc.kune.common.client.actions.Action; import cc.kune.common.client.actions.ActionEvent; import cc.kune.common.client.actions.ChangeableObject; +import cc.kune.common.client.actions.KeyStroke; import cc.kune.gspace.client.actions.perspective.ActionPerspective; /** @@ -52,7 +53,7 @@ /** * Instantiates a new abstract ui action descriptor. This is used for * describe UI button, menus, menu items and so on - * + * * @param action * the action */ @@ -88,7 +89,7 @@ /** * Gets the location, a string used to group actions with locations (top * bar, bottom bar, user bar...). - * + * * @return the location */ @Override @@ -103,7 +104,7 @@ /** * Gets the position. - * + * * @return the position */ @Override @@ -138,13 +139,14 @@ } @Override - public boolean isChild() { - return !parent.equals(NO_PARENT); + public GuiActionDescrip in(final Class<? extends ActionPerspective> clazz) { + putValue(ActionPerspective.KEY, clazz); + return this; } @Override - public void in(Class<? extends ActionPerspective> clazz) { - putValue(ActionPerspective.KEY, clazz); + public boolean isChild() { + return !parent.equals(NO_PARENT); } @Override @@ -182,7 +184,7 @@ * If we have several toolbars, we can group with the "location" string key * actions that must be in the same location (ex: top bar, bottom bar, and * so on). - * + * * @param location * the new location */ @@ -199,7 +201,7 @@ /** * Sets the position (where the UI element will be positioned, for instance * in a toolbar or in a menu). - * + * * @param position * the new position */ @@ -250,6 +252,12 @@ } @Override + public GuiActionDescrip withShortcut(final KeyStroke shortcut) { + putValue(Action.ACCELERATOR_KEY, shortcut); + return this; + } + + @Override public GuiActionDescrip withStyles(final String styles) { setStyles(styles); return this; Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescrip.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescrip.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescrip.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -2,6 +2,7 @@ import cc.kune.common.client.actions.AbstractAction; import cc.kune.common.client.actions.ActionEvent; +import cc.kune.common.client.actions.KeyStroke; import cc.kune.common.client.actions.PropertyChangeListener; import cc.kune.gspace.client.actions.perspective.ActionPerspective; @@ -48,7 +49,7 @@ boolean hasTarget(); - void in(Class<? extends ActionPerspective> clazz); + GuiActionDescrip in(Class<? extends ActionPerspective> clazz); boolean isChild(); @@ -84,6 +85,8 @@ GuiActionDescrip withParent(GuiActionDescrip parent); + GuiActionDescrip withShortcut(KeyStroke keystroke); + GuiActionDescrip withStyles(String styles); GuiActionDescrip withText(String text); Modified: trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -107,7 +107,7 @@ @Override public void show() { - if (!Tooltip.this.isShowing()) { + if (!Tooltip.this.isShowing() && ofWidget.isVisible()) { Tooltip.super.show(); Tooltip.this.showAt(TooltipPositionCalculator.calculate(Window.getClientWidth(), Window.getClientHeight(), ofWidget.getAbsoluteLeft(), ofWidget.getAbsoluteTop(), ofWidget.getOffsetWidth(), Modified: trunk/src/main/java/cc/kune/common/client/ui/BasicThumb.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/ui/BasicThumb.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/common/client/ui/BasicThumb.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -23,7 +23,9 @@ import cc.kune.common.client.tooltip.Tooltip; import cc.kune.common.client.utils.TextUtils; +import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.dom.client.DoubleClickEvent; import com.google.gwt.event.dom.client.DoubleClickHandler; import com.google.gwt.event.dom.client.MouseOutEvent; import com.google.gwt.event.dom.client.MouseOutHandler; @@ -43,6 +45,7 @@ private final Image image; private final Label label; private boolean onOverLabel; + private final VerticalPanel panel; public BasicThumb(final Object imageRef, final int imgSize, final String text, final int textMaxLenght, final boolean crop) { @@ -63,7 +66,7 @@ final boolean crop, final ClickHandler clickHandler) { super(); onOverLabel = false; - final VerticalPanel vpanel = new VerticalPanel(); + panel = new VerticalPanel(); if (imageRef instanceof String) { final String imageUrl = (String) imageRef; if (imgSize == NOSIZE) { @@ -78,21 +81,23 @@ } } else if (imageRef instanceof ImageResource) { image = new Image((ImageResource) imageRef); + image.setPixelSize(imgSize, imgSize); } else { // This should not happen image = new Image(); + image.setPixelSize(imgSize, imgSize); Log.info("Unrecognized icon of BasicThumb: " + imageRef); } final String title = textMaxLenght == NOSIZE ? text : TextUtils.ellipsis(text, textMaxLenght); label = new Label(title); - vpanel.add(image); - vpanel.add(label); - vpanel.addStyleName("k-basic-thumb"); - vpanel.addStyleName("kune-Margin-Mini-trbl"); - vpanel.addStyleName("k-pointer"); - vpanel.addStyleName("k-floatleft"); - vpanel.setCellHorizontalAlignment(label, VerticalPanel.ALIGN_CENTER); - if (clickHandler instanceof ClickHandler) { + panel.add(image); + panel.add(label); + panel.addStyleName("k-basic-thumb"); + panel.addStyleName("kune-Margin-Mini-trbl"); + panel.addStyleName("k-pointer"); + panel.addStyleName("k-floatleft"); + panel.setCellHorizontalAlignment(label, VerticalPanel.ALIGN_CENTER); + if (clickHandler != null) { addClickHandlerImpl(clickHandler); } image.addMouseOverHandler(new MouseOverHandler() { @@ -113,7 +118,7 @@ } } }); - initWidget(vpanel); + initWidget(panel); } public BasicThumb(final Object imageRef, final String thumText, final ClickHandler clickHandler) { @@ -129,8 +134,7 @@ } private void addClickHandlerImpl(final ClickHandler clickHandler) { - label.addClickHandler(clickHandler); - image.addClickHandler(clickHandler); + panel.addDomHandler(clickHandler, ClickEvent.getType()); } public void addDoubleClickHandler(final DoubleClickHandler clickHandler) { @@ -138,8 +142,7 @@ } private void addDoubleClickHandlerImpl(final DoubleClickHandler clickHandler) { - label.addDoubleClickHandler(clickHandler); - image.addDoubleClickHandler(clickHandler); + panel.addDomHandler(clickHandler, DoubleClickEvent.getType()); } public void setLabelVisible(final boolean visible) { Added: trunk/src/main/java/cc/kune/common/client/ui/UiUtils.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/ui/UiUtils.java (rev 0) +++ trunk/src/main/java/cc/kune/common/client/ui/UiUtils.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -0,0 +1,17 @@ +package cc.kune.common.client.ui; + +import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget; +import com.google.gwt.user.client.ui.Panel; + +public class UiUtils { + + public static void clear(final ForIsWidget widget) { + final Panel panel = (Panel) widget; + panel.clear(); + // final int widgetCount = panel.getWidgetCount(); + // for (int i = 0; i < widgetCount && widgetCount > 0; i++) { + // panel.remove(i); + // } + } + +} Modified: trunk/src/main/java/cc/kune/common/public/kune-common.css =================================================================== --- trunk/src/main/java/cc/kune/common/public/kune-common.css 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/common/public/kune-common.css 2011-04-18 11:45:11 UTC (rev 1316) @@ -319,6 +319,7 @@ vertical-align: middle; background-color: #F2F2F2; white-space: nowrap; + margin-right: 3px; } .oc-button:hover { Modified: trunk/src/main/java/cc/kune/core/client/CoreGinModule.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -100,12 +100,6 @@ import cc.kune.core.client.ws.entheader.EntityHeaderPanel; import cc.kune.core.client.ws.entheader.EntityHeaderPresenter; import cc.kune.core.shared.i18n.I18nTranslationService; -import cc.kune.gspace.client.GSpaceArmor; -import cc.kune.gspace.client.GSpaceArmorImpl; -import cc.kune.gspace.client.tags.TagsSummaryPanel; -import cc.kune.gspace.client.tags.TagsSummaryPresenter; -import cc.kune.gspace.client.ui.footer.license.EntityLicensePanel; -import cc.kune.gspace.client.ui.footer.license.EntityLicensePresenter; import cc.kune.msgs.client.UserMessagesPanel; import cc.kune.msgs.client.UserMessagesPresenter; @@ -155,8 +149,6 @@ GroupSNPresenter.GroupSNProxy.class); bindPresenter(UserSNPresenter.class, UserSNPresenter.UserSNView.class, UserSNPanel.class, UserSNPresenter.UserSNProxy.class); - bindPresenter(EntityLicensePresenter.class, EntityLicensePresenter.EntityLicenseView.class, - EntityLicensePanel.class, EntityLicensePresenter.EntityLicenseProxy.class); bindPresenter(EntityHeaderPresenter.class, EntityHeaderPresenter.EntityHeaderView.class, EntityHeaderPanel.class, EntityHeaderPresenter.EntityHeaderProxy.class); bindPresenter(SignInPresenter.class, SignInView.class, SignInPanel.class, SignInPresenter.SignInProxy.class); @@ -164,8 +156,6 @@ RegisterPresenter.RegisterProxy.class); bindPresenter(UserConfirmPresenter.class, UserConfirmPresenter.UserConfirmView.class, UserConfirmPanel.class, UserConfirmPresenter.UserConfirmProxy.class); - bindPresenter(TagsSummaryPresenter.class, TagsSummaryPresenter.TagsSummaryView.class, TagsSummaryPanel.class, - TagsSummaryPresenter.TagsSummaryProxy.class); bind(UserPassAutocompleteManager.class).to(UserPassAutocompleteManagerImpl.class).in(Singleton.class); bind(SignIn.class).to(SignInPresenter.class).in(Singleton.class); @@ -178,8 +168,6 @@ // bind(MessagePanelView.class).to(MessagePanel.class); // UI - s(GSpaceArmorImpl.class); - bind(GSpaceArmor.class).to(GSpaceArmorImpl.class).in(Singleton.class); bind(GuiProvider.class).to(DefaultGuiProvider.class).in(Singleton.class); s(GxtGuiProvider.class); s(GwtGuiProvider.class); Modified: trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -53,8 +53,6 @@ StateContainerDTO addRoom(String user, StateToken parentToken, String name) throws DefaultException; - StateContentDTO addWave(String userHash, StateToken parentToken, String waveFileType, String waveId); - StateContentDTO delContent(String userHash, StateToken token) throws DefaultException; StateAbstractDTO getContent(String userHash, StateToken token) throws DefaultException; Modified: trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -51,9 +51,6 @@ void addRoom(String user, StateToken parentToken, String name, AsyncCallback<StateContainerDTO> callback); - void addWave(String userHash, StateToken parentToken, String waveFileType, String waveId, - AsyncCallback<StateContentDTO> asyncCallbackSimple); - void delContent(String userHash, StateToken token, AsyncCallback<StateContentDTO> asyncCallback); void getContent(String user, StateToken newState, AsyncCallback<StateAbstractDTO> callback); Modified: trunk/src/main/java/cc/kune/core/public/ws.css =================================================================== --- trunk/src/main/java/cc/kune/core/public/ws.css 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/core/public/ws.css 2011-04-18 11:45:11 UTC (rev 1316) @@ -1102,4 +1102,8 @@ .k-tool-item-notselected { background-color: inherits; +} + +.k-def-docbtn span { + font-size: 13px !important; } \ No newline at end of file Modified: trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -23,6 +23,8 @@ import javax.persistence.NoResultException; +import org.waveprotocol.wave.model.waveref.WaveRef; +import org.waveprotocol.wave.util.escapers.jvm.JavaWaverefEncoder; import cc.kune.core.client.errors.AccessViolationException; import cc.kune.core.client.errors.ContentNotFoundException; @@ -68,6 +70,7 @@ import cc.kune.domain.Content; import cc.kune.domain.Group; import cc.kune.domain.User; +import cc.kune.wave.server.KuneWaveManager; import com.google.inject.Inject; import com.google.inject.Provider; @@ -83,6 +86,7 @@ private final CreationService creationService; private final FinderService finderService; private final GroupManager groupManager; + private final KuneWaveManager kuneWaveManager; private final Mapper mapper; private final AccessRightsService rightsService; private final StateService stateService; @@ -96,7 +100,7 @@ final StateService stateService, final CreationService creationService, final GroupManager groupManager, final XmppManager xmppManager, final ContentManager contentManager, final ContainerManager containerManager, final TagUserContentManager tagManager, - final CommentManager commentManager, final Mapper mapper) { + final CommentManager commentManager, final Mapper mapper, final KuneWaveManager kuneWaveManager) { this.finderService = finderService; this.userSessionProvider = userSessionProvider; this.accessService = accessService; @@ -110,6 +114,7 @@ this.tagManager = tagManager; this.commentManager = commentManager; this.mapper = mapper; + this.kuneWaveManager = kuneWaveManager; } @Override @@ -154,7 +159,8 @@ public StateContentDTO addContent(final String userHash, final StateToken parentToken, final String title, final String typeId) throws DefaultException { final String body = ""; - return createContent(parentToken, title, typeId, body); + final WaveRef waveRef = kuneWaveManager.createWave(body, getCurrentUser().getShortName()); + return createContent(parentToken, title, typeId, JavaWaverefEncoder.encodeToUriPathSegment(waveRef)); } @Override @@ -201,15 +207,6 @@ return null; } - @Override - @Authenticated - @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional - public StateContentDTO addWave(final String userHash, final StateToken parentToken, final String typeId, - final String waveId) throws DefaultException { - return createContent(parentToken, "Wave embeded test", typeId, waveId); - } - private StateContentDTO createContent(final StateToken parentToken, final String title, final String typeId, final String body) { final User user = getCurrentUser(); Modified: trunk/src/main/java/cc/kune/core/server/utils/FilenameUtils.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/utils/FilenameUtils.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/core/server/utils/FilenameUtils.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -30,13 +30,13 @@ * * @param filename */ - public static void checkBasicFilename(String filename) { - if (filename.length() == 0 || filename.equals(".") || filename.equals("..")) { + public static void checkBasicFilename(final String filename) { + if (filename == null || filename.length() == 0 || filename.equals(".") || filename.equals("..")) { throw new NameNotPermittedException(); } } - public static String chomp(String filename) { + public static String chomp(final String filename) { return StringUtils.chomp(filename); } } Modified: trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java =================================================================== --- trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -36,20 +36,23 @@ public class DocsClientActions extends AbstractFoldableContentActions { final String[] all = { TYPE_ROOT, TYPE_FOLDER, TYPE_DOCUMENT, TYPE_UPLOADEDFILE }; - - final String[] containers = { TYPE_ROOT, TYPE_FOLDER, }; + final String[] containers = { TYPE_ROOT, TYPE_FOLDER }; final String[] containersNoRoot = { TYPE_FOLDER }; final String[] contents = { TYPE_DOCUMENT, TYPE_UPLOADEDFILE, TYPE_WAVE }; final String[] contentsModerated = { TYPE_DOCUMENT, TYPE_UPLOADEDFILE }; - private final Provider<DocsGoUpBtn> docsGoUp; - @Inject public DocsClientActions(final I18nUITranslationService i18n, final Session session, final StateManager stateManager, final ActionRegistryByType registry, final CoreResources res, - final Provider<DocsGoUpBtn> docsGoUp) { + final Provider<FolderGoUpBtn> folderGoUp, final Provider<NewDocBtn> newDocBtn, + final Provider<NewFolderBtn> newFolderBtn, final Provider<OpenContentBtn> openContentBtn) { super(session, stateManager, i18n, registry); - this.docsGoUp = docsGoUp; + actionsRegistry.addAction(folderGoUp, contents); + actionsRegistry.addAction(folderGoUp, containersNoRoot); + actionsRegistry.addAction(newDocBtn, containers); + actionsRegistry.addAction(newFolderBtn, containers); + actionsRegistry.addAction(openContentBtn, contents); + actionsRegistry.addAction(openContentBtn, containersNoRoot); } @Override @@ -103,7 +106,5 @@ @Override protected void createPostSessionInitActions() { // super.createUploadMediaAction(TYPE_GALLERY); - actionsRegistry.addAction(docsGoUp, contents); - actionsRegistry.addAction(docsGoUp, containersNoRoot); } } Deleted: trunk/src/main/java/cc/kune/docs/client/actions/DocsGoUpBtn.java =================================================================== --- trunk/src/main/java/cc/kune/docs/client/actions/DocsGoUpBtn.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/docs/client/actions/DocsGoUpBtn.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -1,42 +0,0 @@ -package cc.kune.docs.client.actions; - -import cc.kune.common.client.actions.AbstractExtendedAction; -import cc.kune.common.client.actions.ActionEvent; -import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor; -import cc.kune.core.client.resources.CoreResources; -import cc.kune.core.client.state.Session; -import cc.kune.core.client.state.StateManager; -import cc.kune.core.shared.dto.HasContent; -import cc.kune.core.shared.i18n.I18nTranslationService; -import cc.kune.gspace.client.actions.perspective.ViewPerspective; - -import com.google.inject.Inject; - -public class DocsGoUpBtn extends ButtonDescriptor { - - public static class DocsGoUpAction extends AbstractExtendedAction { - - private final Session session; - private final StateManager stateManager; - - @Inject - public DocsGoUpAction(final Session session, final StateManager stateManager) { - this.session = session; - this.stateManager = stateManager; - } - - @Override - public void actionPerformed(final ActionEvent event) { - stateManager.gotoStateToken(((HasContent) session.getCurrentState()).getContainer().getStateToken()); - } - - } - - @Inject - public DocsGoUpBtn(final I18nTranslationService i18n, final DocsGoUpAction action, final CoreResources res) { - super(action); - this.withToolTip(i18n.t("Go up: Open the container folder")).withIcon(res.folderGoUp()).in( - ViewPerspective.class); - } - -} Copied: trunk/src/main/java/cc/kune/docs/client/actions/FolderGoUpBtn.java (from rev 1315, trunk/src/main/java/cc/kune/docs/client/actions/DocsGoUpBtn.java) =================================================================== --- trunk/src/main/java/cc/kune/docs/client/actions/FolderGoUpBtn.java (rev 0) +++ trunk/src/main/java/cc/kune/docs/client/actions/FolderGoUpBtn.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -0,0 +1,54 @@ +package cc.kune.docs.client.actions; + +import cc.kune.common.client.actions.AbstractExtendedAction; +import cc.kune.common.client.actions.ActionEvent; +import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor; +import cc.kune.core.client.resources.CoreResources; +import cc.kune.core.client.state.Session; +import cc.kune.core.client.state.StateManager; +import cc.kune.core.shared.domain.utils.StateToken; +import cc.kune.core.shared.dto.ContainerDTO; +import cc.kune.core.shared.dto.StateAbstractDTO; +import cc.kune.core.shared.dto.StateContainerDTO; +import cc.kune.core.shared.dto.StateContentDTO; +import cc.kune.core.shared.i18n.I18nTranslationService; +import cc.kune.gspace.client.actions.perspective.ViewPerspective; + +import com.google.inject.Inject; + +public class FolderGoUpBtn extends ButtonDescriptor { + + public static class FolderGoUpAction extends AbstractExtendedAction { + + private final Session session; + private final StateManager stateManager; + + @Inject + public FolderGoUpAction(final Session session, final StateManager stateManager) { + this.session = session; + this.stateManager = stateManager; + } + + @Override + public void actionPerformed(final ActionEvent event) { + StateToken stateToken; + final StateAbstractDTO state = session.getCurrentState(); + if (state instanceof StateContentDTO) { + stateToken = ((StateContentDTO) state).getContainer().getStateToken(); + } else { + final ContainerDTO container = ((StateContainerDTO) state).getContainer(); + stateToken = container.getStateToken().copy().setFolder(container.getParentFolderId()); + } + stateManager.gotoStateToken(stateToken); + } + + } + + @Inject + public FolderGoUpBtn(final I18nTranslationService i18n, final FolderGoUpAction action, final CoreResources res) { + super(action); + this.withToolTip(i18n.t("Go up: Open the container folder")).withIcon(res.folderGoUp()).in( + ViewPerspective.class); + } + +} Added: trunk/src/main/java/cc/kune/docs/client/actions/NewDocBtn.java =================================================================== --- trunk/src/main/java/cc/kune/docs/client/actions/NewDocBtn.java (rev 0) +++ trunk/src/main/java/cc/kune/docs/client/actions/NewDocBtn.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -0,0 +1,74 @@ +package cc.kune.docs.client.actions; + +import cc.kune.common.client.actions.ActionEvent; +import cc.kune.common.client.actions.KeyStroke; +import cc.kune.common.client.actions.Shortcut; +import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor; +import cc.kune.common.client.notify.NotifyUser; +import cc.kune.common.client.shortcuts.GlobalShortcutRegister; +import cc.kune.core.client.actions.RolAction; +import cc.kune.core.client.resources.nav.NavResources; +import cc.kune.core.client.rpcservices.AsyncCallbackSimple; +import cc.kune.core.client.rpcservices.ContentServiceAsync; +import cc.kune.core.client.state.ContentCache; +import cc.kune.core.client.state.Session; +import cc.kune.core.client.state.StateManager; +import cc.kune.core.shared.dto.AccessRolDTO; +import cc.kune.core.shared.dto.HasContent; +import cc.kune.core.shared.dto.StateContentDTO; +import cc.kune.core.shared.i18n.I18nTranslationService; +import cc.kune.docs.client.DocsClientTool; +import cc.kune.gspace.client.actions.perspective.ViewPerspective; + +import com.google.inject.Inject; +import com.google.inject.Provider; + +public class NewDocBtn extends ButtonDescriptor { + + public static class NewDocAction extends RolAction { + + private final ContentCache cache; + private final Provider<ContentServiceAsync> contentService; + private final I18nTranslationService i18n; + private final Session session; + private final StateManager stateManager; + + @Inject + public NewDocAction(final Session session, final StateManager stateManager, final I18nTranslationService i18n, + final Provider<ContentServiceAsync> contentService, final ContentCache cache) { + super(AccessRolDTO.Editor, true); + this.session = session; + this.stateManager = stateManager; + this.i18n = i18n; + this.contentService = contentService; + this.cache = cache; + } + + @Override + public void actionPerformed(final ActionEvent event) { + stateManager.gotoStateToken(((HasContent) session.getCurrentState()).getContainer().getStateToken()); + NotifyUser.showProgressProcessing(); + contentService.get().addContent(session.getUserHash(), session.getCurrentStateToken(), + i18n.t("New document"), DocsClientTool.TYPE_WAVE, new AsyncCallbackSimple<StateContentDTO>() { + @Override + public void onSuccess(final StateContentDTO state) { + // contextNavigator.setEditOnNextStateChange(true); + stateManager.setRetrievedState(state); + } + }); + cache.removeContent(session.getCurrentStateToken()); + } + } + + @Inject + public NewDocBtn(final I18nTranslationService i18n, final NewDocAction action, final NavResources res, + final GlobalShortcutRegister shorcutReg) { + super(action); + final KeyStroke shortcut = Shortcut.getShortcut(false, true, false, false, Character.valueOf('N')); + shorcutReg.put(shortcut, action); + this.withText(i18n.t("New document")).withToolTip( + "Create a New Document here. This document will be a new 'Page' in the public web if you publish it").withIcon( + res.pageAdd()).in(ViewPerspective.class).withShortcut(shortcut).withStyles("k-def-docbtn"); + } + +} Added: trunk/src/main/java/cc/kune/docs/client/actions/NewFolderBtn.java =================================================================== --- trunk/src/main/java/cc/kune/docs/client/actions/NewFolderBtn.java (rev 0) +++ trunk/src/main/java/cc/kune/docs/client/actions/NewFolderBtn.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -0,0 +1,68 @@ +package cc.kune.docs.client.actions; + +import cc.kune.common.client.actions.ActionEvent; +import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor; +import cc.kune.common.client.notify.NotifyUser; +import cc.kune.core.client.actions.RolAction; +import cc.kune.core.client.resources.nav.NavResources; +import cc.kune.core.client.rpcservices.AsyncCallbackSimple; +import cc.kune.core.client.rpcservices.ContentServiceAsync; +import cc.kune.core.client.state.ContentCache; +import cc.kune.core.client.state.Session; +import cc.kune.core.client.state.StateManager; +import cc.kune.core.shared.dto.AccessRolDTO; +import cc.kune.core.shared.dto.HasContent; +import cc.kune.core.shared.dto.StateContainerDTO; +import cc.kune.core.shared.i18n.I18nTranslationService; +import cc.kune.docs.client.DocsClientTool; +import cc.kune.gspace.client.actions.perspective.ViewPerspective; + +import com.google.inject.Inject; +import com.google.inject.Provider; + +public class NewFolderBtn extends ButtonDescriptor { + + public static class NewDocAction extends RolAction { + + private final ContentCache cache; + private final Provider<ContentServiceAsync> contentService; + private final I18nTranslationService i18n; + private final Session session; + private final StateManager stateManager; + + @Inject + public NewDocAction(final Session session, final StateManager stateManager, final I18nTranslationService i18n, + final Provider<ContentServiceAsync> contentService, final ContentCache cache) { + super(AccessRolDTO.Editor, true); + this.session = session; + this.stateManager = stateManager; + this.i18n = i18n; + this.contentService = contentService; + this.cache = cache; + } + + @Override + public void actionPerformed(final ActionEvent event) { + stateManager.gotoStateToken(((HasContent) session.getCurrentState()).getContainer().getStateToken()); + NotifyUser.showProgressProcessing(); + contentService.get().addFolder(session.getUserHash(), session.getCurrentStateToken(), i18n.t("New folder"), + DocsClientTool.TYPE_FOLDER, new AsyncCallbackSimple<StateContainerDTO>() { + @Override + public void onSuccess(final StateContainerDTO state) { + // contextNavigator.setEditOnNextStateChange(true); + stateManager.setRetrievedState(state); + } + }); + cache.removeContent(session.getCurrentStateToken()); + } + + } + + @Inject + public NewFolderBtn(final I18nTranslationService i18n, final NewDocAction action, final NavResources res) { + super(action); + this.withText(i18n.t("New folder")).withToolTip( + i18n.t("Create a new folder here. A folder will be a 'section' in the public web")).withIcon( + res.folderAdd()).in(ViewPerspective.class).withStyles("k-def-docbtn"); + } +} Added: trunk/src/main/java/cc/kune/docs/client/actions/OpenContentBtn.java =================================================================== --- trunk/src/main/java/cc/kune/docs/client/actions/OpenContentBtn.java (rev 0) +++ trunk/src/main/java/cc/kune/docs/client/actions/OpenContentBtn.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -0,0 +1,38 @@ +package cc.kune.docs.client.actions; + +import cc.kune.common.client.actions.AbstractExtendedAction; +import cc.kune.common.client.actions.ActionEvent; +import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor; +import cc.kune.core.client.resources.CoreResources; +import cc.kune.core.client.state.StateManager; +import cc.kune.core.shared.domain.utils.StateToken; +import cc.kune.core.shared.i18n.I18nTranslationService; +import cc.kune.gspace.client.actions.perspective.MenuPerspective; + +import com.google.inject.Inject; + +public class OpenContentBtn extends MenuItemDescriptor { + + public static class OpenContentAction extends AbstractExtendedAction { + + private final StateManager stateManager; + + @Inject + public OpenContentAction(final StateManager stateManager) { + this.stateManager = stateManager; + } + + @Override + public void actionPerformed(final ActionEvent event) { + stateManager.gotoStateToken((StateToken) event.getTarget()); + } + + } + + @Inject + public OpenContentBtn(final I18nTranslationService i18n, final OpenContentAction action, final CoreResources res) { + super(action); + this.withText(i18n.t("Open")).withIcon(res.arrowRightGreen()).in(MenuPerspective.class); + } + +} Modified: trunk/src/main/java/cc/kune/docs/client/viewers/DocViewerPanel.java =================================================================== --- trunk/src/main/java/cc/kune/docs/client/viewers/DocViewerPanel.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/docs/client/viewers/DocViewerPanel.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -19,6 +19,7 @@ import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection; import cc.kune.common.client.errors.UIException; +import cc.kune.common.client.ui.UiUtils; import cc.kune.core.shared.dto.StateContentDTO; import cc.kune.docs.client.viewers.DocViewerPresenter.DocViewerView; import cc.kune.gspace.client.GSpaceArmor; @@ -34,6 +35,7 @@ import com.google.gwt.user.client.Command; import com.google.gwt.user.client.ui.DeckPanel; import com.google.gwt.user.client.ui.InlineHTML; +import com.google.gwt.user.client.ui.InlineLabel; import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; @@ -49,6 +51,7 @@ private RemoteViewServiceMultiplexer channel; @UiField DeckPanel deck; + private final GSpaceArmor gsArmor; private IdGenerator idGenerator; private final Element loading = new LoadingIndicator().getElement(); @UiField @@ -63,11 +66,10 @@ ImplPanel waveHolder; private final WaveStore waveStore = new SimpleWaveStore(); private final Widget widget; - private final GSpaceArmor wsArmor; @Inject public DocViewerPanel(final GSpaceArmor wsArmor, final WaveClientManager waveClientManager) { - this.wsArmor = wsArmor; + this.gsArmor = wsArmor; this.waveClientManager = waveClientManager; widget = uiBinder.createAndBindUi(this); } @@ -79,17 +81,20 @@ @Override public void attach() { - final ForIsWidget docContainer = wsArmor.getDocContainer(); - final int widgetCount = docContainer.getWidgetCount(); - for (int i = 0; i < widgetCount; i++) { - docContainer.remove(i); - } + final ForIsWidget docContainer = gsArmor.getDocContainer(); docContainer.add(widget); } + public void clear() { + onlyViewPanel.setHTML(""); + gsArmor.getSubheaderToolbar().clear(); + UiUtils.clear(gsArmor.getDocContainer()); + UiUtils.clear(gsArmor.getDocHeader()); + } + @Override public void detach() { - widget.removeFromParent(); + clear(); } private WaveRef getWaveRef(final String waveRefS) { @@ -114,12 +119,15 @@ @Override public void setActions(final GuiActionDescCollection actions) { - wsArmor.getSubheaderToolbar().clear(); - wsArmor.getSubheaderToolbar().addAll(actions); + gsArmor.getSubheaderToolbar().clear(); + gsArmor.getSubheaderToolbar().addAll(actions); } @Override public void setContent(final StateContentDTO state) { + final ForIsWidget docHeader = gsArmor.getDocHeader(); + UiUtils.clear(docHeader); + docHeader.add(new InlineLabel(state.getTitle())); final boolean editable = state.getContentRights().isEditable(); if (editable) { // initWaveClientIfNeeded(); Modified: trunk/src/main/java/cc/kune/docs/client/viewers/DocViewerPresenter.java =================================================================== --- trunk/src/main/java/cc/kune/docs/client/viewers/DocViewerPresenter.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/docs/client/viewers/DocViewerPresenter.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -10,6 +10,7 @@ import cc.kune.core.shared.dto.StateContentDTO; import cc.kune.docs.client.DocsClientTool; import cc.kune.docs.client.actions.DocsClientActions; +import cc.kune.gspace.client.actions.perspective.ViewPerspective; import cc.kune.gspace.client.tool.ContentViewer; import cc.kune.gspace.client.tool.ContentViewerSelector; @@ -32,6 +33,8 @@ void attach(); + void clear(); + void detach(); void setActions(GuiActionDescCollection actions); @@ -69,10 +72,11 @@ @Override public void setContent(@Nonnull final HasContent state) { + getView().clear(); final StateContentDTO stateContent = (StateContentDTO) state; final AccessRights rights = stateContent.getContentRights(); final GuiActionDescCollection actions = actionsRegistry.getCurrentActions(stateContent.getGroup(), - stateContent.getTypeId(), session.isLogged(), rights); + stateContent.getTypeId(), session.isLogged(), rights, ViewPerspective.class); getView().setActions(actions); getView().setContent(stateContent); } Modified: trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPanel.java =================================================================== --- trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPanel.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPanel.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -5,6 +5,7 @@ import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip; import cc.kune.common.client.actions.ui.descrip.MenuDescriptor; import cc.kune.common.client.ui.BasicThumb; +import cc.kune.common.client.ui.UiUtils; import cc.kune.core.shared.dto.StateContainerDTO; import cc.kune.docs.client.viewers.FolderViewerPresenter.FolderViewerView; import cc.kune.gspace.client.GSpaceArmor; @@ -16,6 +17,8 @@ import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.HTML; +import com.google.gwt.user.client.ui.InlineLabel; import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget; import com.google.gwt.user.client.ui.Widget; import com.google.inject.Inject; @@ -31,8 +34,8 @@ private final GSpaceArmor gsArmor; - int ICONLABELMAXSIZE = 10; - int ICONSIZE = 40; + int ICONLABELMAXSIZE = 20; + int ICONSIZE = 100; private final Widget widget; @Inject @@ -54,12 +57,7 @@ @Override public void attach() { - // Duplicate code in DocViewerPanel final ForIsWidget docContainer = gsArmor.getDocContainer(); - final int widgetCount = docContainer.getWidgetCount(); - for (int i = 0; i < widgetCount; i++) { - docContainer.remove(i); - } docContainer.add(widget); } @@ -67,6 +65,8 @@ public void clear() { flow.clear(); gsArmor.getSubheaderToolbar().clear(); + UiUtils.clear(gsArmor.getDocContainer()); + UiUtils.clear(gsArmor.getDocHeader()); } public BasicThumb createThumb(final String text, final Object icon, final String tooltip, @@ -97,7 +97,6 @@ @Override public void detach() { - widget.removeFromParent(); clear(); } @@ -109,6 +108,8 @@ @Override public void setContainer(final StateContainerDTO state) { + gsArmor.getDocContainer().add(new HTML("<b>Note:</b> This GUI is provisional<br/>")); + gsArmor.getDocHeader().add(new InlineLabel(state.getTitle())); } } Modified: trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPresenter.java =================================================================== --- trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPresenter.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPresenter.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -3,6 +3,7 @@ import javax.annotation.Nonnull; import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection; +import cc.kune.common.client.notify.NotifyUser; import cc.kune.core.client.actions.ActionRegistryByType; import cc.kune.core.client.registry.ContentCapabilitiesRegistry; import cc.kune.core.client.registry.IconsRegistry; @@ -23,6 +24,7 @@ import cc.kune.docs.client.DocsClientTool; import cc.kune.docs.client.actions.DocsClientActions; import cc.kune.gspace.client.actions.perspective.MenuPerspective; +import cc.kune.gspace.client.actions.perspective.ViewPerspective; import cc.kune.gspace.client.tool.ContentViewer; import cc.kune.gspace.client.tool.ContentViewerSelector; @@ -89,7 +91,7 @@ private void addItem(final String title, final String contentTypeId, final BasicMimeTypeDTO mimeType, final ContentStatus status, final StateToken stateToken, final StateToken parentStateToken, - final AccessRights rights, final boolean isNodeSelected) { + final AccessRights rights) { final Object icon = getIcon(stateToken, contentTypeId, mimeType); final String tooltip = getTooltip(stateToken, mimeType); final FolderItemDescriptor item = new FolderItemDescriptor(genId(stateToken), genId(parentStateToken), icon, @@ -99,9 +101,9 @@ session.isLogged(), rights, MenuPerspective.class)); if (status.equals(ContentStatus.inTheDustbin) && !session.getShowDeletedContent()) { // Don't show + NotifyUser.info("Deleted, don't show"); } else { getView().addItem(item, new DoubleClickHandler() { - @Override public void onDoubleClick(final DoubleClickEvent event) { stateManager.gotoStateToken(stateToken); @@ -116,18 +118,16 @@ } private void createChildItems(final ContainerDTO container, final AccessRights containerRights) { + NotifyUser.info("Size: " + container.getContents().size() + " siblings: " + container.getChilds().size()); + for (final ContentSimpleDTO content : container.getContents()) { + addItem(content.getTitle(), content.getTypeId(), content.getMimeType(), content.getStatus(), + content.getStateToken(), content.getStateToken().copy().clearDocument(), content.getRights()); + } for (final ContainerSimpleDTO siblingFolder : container.getChilds()) { addItem(siblingFolder.getName(), siblingFolder.getTypeId(), null, ContentStatus.publishedOnline, siblingFolder.getStateToken(), - siblingFolder.getStateToken().copy().setFolder(siblingFolder.getParentFolderId()), containerRights, - false); + siblingFolder.getStateToken().copy().setFolder(siblingFolder.getParentFolderId()), containerRights); } - for (final ContentSimpleDTO content : container.getContents()) { - // content.getTitle() - addItem(content.getStateToken().toString(), content.getTypeId(), content.getMimeType(), - content.getStatus(), content.getStateToken(), content.getStateToken().copy().clearDocument(), - content.getRights(), false); - } } @Override @@ -140,9 +140,7 @@ } private Object getIcon(final StateToken token, final String contentTypeId, final BasicMimeTypeDTO mimeType) { - if (contentTypeId.equals(DocsClientTool.TYPE_FOLDER)) { - return null; - } else if (!useGenericImageIcon && mimeType != null && mimeType.getType().equals("image")) { + if (!useGenericImageIcon && mimeType != null && mimeType.getType().equals("image")) { return downloadUtilsProvider.get().getImageResizedUrl(token, ImageSize.ico); } else { return iconsRegistry.getContentTypeIcon(contentTypeId, mimeType); @@ -154,7 +152,7 @@ // Used for previews return null; } else { - return i18n.t("Double click to open"); + return null; // i18n.t("Double click to open"); } } @@ -167,11 +165,11 @@ public void setContent(@Nonnull final HasContent state) { getView().clear(); final StateContainerDTO stateContainer = (StateContainerDTO) state; + getView().setContainer(stateContainer); final AccessRights rights = stateContainer.getContainerRights(); final GuiActionDescCollection actions = actionsRegistry.getCurrentActions(stateContainer.getGroup(), - stateContainer.getTypeId(), session.isLogged(), rights); + stateContainer.getTypeId(), session.isLogged(), rights, ViewPerspective.class); getView().setActions(actions); - getView().setContainer(stateContainer); createChildItems(stateContainer.getContainer(), stateContainer.getContainerRights()); // view.setEditable(rights.isEditable()); } Modified: trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -19,9 +19,13 @@ */ package cc.kune.gspace.client; +import cc.kune.gspace.client.tags.TagsSummaryPanel; +import cc.kune.gspace.client.tags.TagsSummaryPresenter; import cc.kune.gspace.client.tool.selector.ToolSelector; import cc.kune.gspace.client.tool.selector.ToolSelectorPanel; import cc.kune.gspace.client.tool.selector.ToolSelectorPresenter; +import cc.kune.gspace.client.ui.footer.license.EntityLicensePanel; +import cc.kune.gspace.client.ui.footer.license.EntityLicensePresenter; import com.google.inject.Singleton; import com.gwtplatform.mvp.client.gin.AbstractPresenterModule; @@ -35,6 +39,12 @@ */ @Override protected void configure() { + bindPresenter(EntityLicensePresenter.class, EntityLicensePresenter.EntityLicenseView.class, + EntityLicensePanel.class, EntityLicensePresenter.EntityLicenseProxy.class); + bindPresenter(TagsSummaryPresenter.class, TagsSummaryPresenter.TagsSummaryView.class, TagsSummaryPanel.class, + TagsSummaryPresenter.TagsSummaryProxy.class); + bind(GSpaceArmorImpl.class).in(Singleton.class); + bind(GSpaceArmor.class).to(GSpaceArmorImpl.class).in(Singleton.class); bind(GSpaceParts.class).asEagerSingleton(); bindPresenter(ToolSelectorPresenter.class, ToolSelectorPresenter.ToolSelectorView.class, ToolSelectorPanel.class, ToolSelectorPresenter.ToolSelectorProxy.class); Modified: trunk/src/main/java/cc/kune/gspace/client/tool/ContentViewerSelector.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/tool/ContentViewerSelector.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/gspace/client/tool/ContentViewerSelector.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -25,6 +25,7 @@ @Singleton public class ContentViewerSelector { + private ContentViewer currentView; private final HashMap<String, ContentViewer> defViewsRegister; private final Session session; private final StateManager stateManager; @@ -38,6 +39,12 @@ defViewsRegister = new HashMap<String, ContentViewer>(); } + private void detachCurrent() { + if (currentView != null) { + currentView.detach(); + } + } + public void init() { session.onAppStart(true, new AppStartHandler() { @Override @@ -50,6 +57,7 @@ setContent((HasContent) state); } else { // NoContent + detachCurrent(); } } }); @@ -78,8 +86,10 @@ } private void setContent(final ContentViewer view, final HasContent state) { + detachCurrent(); view.setContent(state); view.attach(); + currentView = view; } public void setContent(@Nonnull final HasContent state) { Modified: trunk/src/main/java/cc/kune/wave/client/WebClient.java =================================================================== --- trunk/src/main/java/cc/kune/wave/client/WebClient.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/wave/client/WebClient.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -215,7 +215,7 @@ } }; Search search = SimpleSearch.create(RemoteSearchService.create(), waveStore); - SearchPresenter searchUi = SearchPresenter.create(search, searchPanel, selectHandler); + SearchPresenter.create(search, searchPanel, selectHandler); } private void setupWavePanel() { Modified: trunk/src/main/java/cc/kune/wave/server/CustomUserRegistrationServlet.java =================================================================== --- trunk/src/main/java/cc/kune/wave/server/CustomUserRegistrationServlet.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/wave/server/CustomUserRegistrationServlet.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -44,7 +44,7 @@ /** * The user registration servlet allows new users to register accounts. - * + * * @author [email protected] (Joseph Gentle) */ @Singleton Modified: trunk/src/main/java/cc/kune/wave/server/WaveMain.java =================================================================== --- trunk/src/main/java/cc/kune/wave/server/WaveMain.java 2011-04-18 00:41:28 UTC (rev 1315) +++ trunk/src/main/java/cc/kune/wave/server/WaveMain.java 2011-04-18 11:45:11 UTC (rev 1316) @@ -114,7 +114,7 @@ ServerRpcProvider server = injector.getInstance(ServerRpcProvider.class); WaveBus waveBus = injector.getInstance(WaveBus.class); - + String domain = injector.getInstance(Key.get(String.class, Names.named(CoreSettings.WAVE_SERVER_DOMAIN))); if (!ParticipantIdUtil.isDomainAddress(ParticipantIdUtil.makeDomainAddress(domain))) { @@ -168,7 +168,7 @@ server.addServlet("/auth/register", injector.getInstance(UserRegistrationServlet.class)); server.addServlet("/fetch/*", injector.getInstance(FetchServlet.class)); - + server.addServlet("/search/*", injector.getInstance(SearchServlet.class)); server.addServlet("/robot/dataapi", injector.getInstance(DataApiServlet.class)); @@ -189,7 +189,7 @@ gadgetServerPath); ServletHolder proxyServletHolder = server.addServlet("/gadgets/*", proxyServlet); proxyServletHolder.setInitParameter("HostHeader", gadgetServerHostname); - + server.addServlet("/webclient/remote_logging", injector.getInstance(RemoteLoggingServiceImpl.class)); // server.addServlet("/", injector.getInstance(WaveClientServlet.class)); @@ -203,7 +203,7 @@ private static void initializeFrontend(Injector injector, ServerRpcProvider server, WaveBus waveBus, String waveDomain) throws WaveServerException { HashedVersionFactory hashFactory = injector.getInstance(HashedVersionFactory.class); - + WaveletProvider provider = injector.getInstance(WaveletProvider.class); ClientFrontend frontend = ClientFrontendImpl.create(hashFactory, provider, waveBus, waveDomain);
participants (1)
-
Vicente J. Ruiz Jurado