r1018 - in trunk/src: main/java/org/ourproject/kune/app/client main/java/org/ourproject/kune/gallery/client/cnt main/java/org/ourproject/kune/platf/client/dto main/java/org/ourproject/kune/platf/client/services main/java/org/ourproject/kune/platf/client/state main/java/org/ourproject/kune/platf/client/ui/upload main/java/org/ourproject/kune/platf/server/content main/java/org/ourproject/kune/platf/server/domain main/java/org/ourproject/kune/workspace/client/cnt main/java/org/ourproject/kune/wo
Author: vjrj Date: 2008-12-31 18:43:47 +0100 (Wed, 31 Dec 2008) New Revision: 1018 Modified: trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContent.java trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateToken.java trunk/src/main/java/org/ourproject/kune/platf/client/services/KunePlatformModule.java trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploader.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderPresenter.java trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigator.java trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java trunk/src/test/java/org/ourproject/kune/platf/client/ui/dialogs/upload/FileUploaderPresenterTest.java Log: UI small-bugs new year mini-party II Modified: trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java 2008-12-31 14:06:27 UTC (rev 1017) +++ trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java 2008-12-31 17:43:47 UTC (rev 1018) @@ -34,6 +34,8 @@ import com.calclab.emiteuimodule.client.EmiteUIModule; import com.calclab.suco.client.Suco; import com.google.gwt.core.client.EntryPoint; +import com.google.gwt.core.client.GWT; +import com.google.gwt.core.client.GWT.UncaughtExceptionHandler; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.DeferredCommand; @@ -44,6 +46,11 @@ public void onModuleLoad() { Log.setUncaughtExceptionHandler(); + GWT.setUncaughtExceptionHandler(new UncaughtExceptionHandler() { + public void onUncaughtException(Throwable e) { + Log.error(e.toString()); + } + }); // At the moment, in runtime: Log.setCurrentLogLevel(Log.LOG_LEVEL_DEBUG); Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContent.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContent.java 2008-12-31 14:06:27 UTC (rev 1017) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContent.java 2008-12-31 17:43:47 UTC (rev 1018) @@ -20,4 +20,5 @@ package org.ourproject.kune.gallery.client.cnt; public interface GalleryFolderContent { + } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateToken.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateToken.java 2008-12-31 14:06:27 UTC (rev 1017) +++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateToken.java 2008-12-31 17:43:47 UTC (rev 1018) @@ -182,6 +182,13 @@ return getGroup() == null && getTool() == null && getFolder() == null && getDocument() == null; } + public boolean hasSameContainer(StateToken currentStateToken) { + if (copy().clearDocument().getEncoded().equals(currentStateToken.copy().clearDocument().getEncoded())) { + return true; + } + return false; + } + public boolean isComplete() { return getDocument() != null; } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KunePlatformModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/services/KunePlatformModule.java 2008-12-31 14:06:27 UTC (rev 1017) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KunePlatformModule.java 2008-12-31 17:43:47 UTC (rev 1018) @@ -50,13 +50,17 @@ register(Singleton.class, new Factory<FileUploader>(FileUploader.class) { @Override public FileUploader create() { - final FileUploaderPresenter presenter = new FileUploaderPresenter($(Session.class), - $$(ContextNavigator.class)); + final FileUploaderPresenter presenter = new FileUploaderPresenter($(Session.class)); final FileUploaderDialog panel = new FileUploaderDialog(presenter, $(I18nUITranslationService.class), $(WorkspaceSkeleton.class)); presenter.init(panel); return presenter; } + + @Override + public void onAfterCreated(FileUploader uploader) { + $(ContextNavigator.class).addFileUploaderListener(uploader); + } }); } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-12-31 14:06:27 UTC (rev 1017) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-12-31 17:43:47 UTC (rev 1018) @@ -171,7 +171,8 @@ public void setRetrievedState(final StateAbstractDTO newState) { contentProvider.cache(newState.getStateToken(), newState); - setState(newState); + // setState(newState); + history.newItem(newState.getStateToken().toString()); } public void setSocialNetwork(final SocialNetworkDataDTO socialNet) { Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploader.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploader.java 2008-12-31 14:06:27 UTC (rev 1017) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploader.java 2008-12-31 17:43:47 UTC (rev 1018) @@ -18,8 +18,14 @@ * */package org.ourproject.kune.platf.client.ui.upload; +import org.ourproject.kune.platf.client.dto.StateToken; + +import com.calclab.suco.client.listener.Listener; + public interface FileUploader { + void addOnUploadCompleteListener(Listener<StateToken> listener); + boolean hasUploadingFiles(); void hide(); Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java 2008-12-31 14:06:27 UTC (rev 1017) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java 2008-12-31 17:43:47 UTC (rev 1018) @@ -121,15 +121,17 @@ } private void createDialog(final boolean show) { - dialog = new UploadDialog(i18n.t("File uploader"), false, true); - dialog.setId(SITE_FILE_UPLOADER); - dialog.setAllowCloseOnUpload(true); - dialog.setResetOnHide(false); - dialog.setClosable(true); - dialog.setCloseAction(Window.HIDE); - dialog.setMinimizable(true); - dialog.setUploadAutostart(false); - + dialog = new UploadDialog(i18n.t("File uploader"), false, true) { + { + setAllowCloseOnUpload(true); + setResetOnHide(false); + setClosable(true); + setCloseAction(Window.HIDE); + setMinimizable(true); + setUploadAutostart(false); + } + }; + // dialog.setId(SITE_FILE_UPLOADER); dialog.addListener(new UploadDialogListenerAdapter() { @Override public boolean onBeforeAdd(final UploadDialog source, final String filename) { Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderPresenter.java 2008-12-31 14:06:27 UTC (rev 1017) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderPresenter.java 2008-12-31 17:43:47 UTC (rev 1018) @@ -21,9 +21,9 @@ import org.ourproject.kune.platf.client.dto.StateToken; import org.ourproject.kune.platf.client.state.Session; import org.ourproject.kune.platf.client.tool.FoldableAbstractClientTool; -import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator; -import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Event; +import com.calclab.suco.client.listener.Listener; import com.calclab.suco.client.listener.Listener0; public class FileUploaderPresenter implements FileUploader { @@ -31,13 +31,17 @@ private FileUploaderView view; private final Session session; private StateToken currentUploadStateToken; - private final Provider<ContextNavigator> navProvider; + private final Event<StateToken> onUploadComplete; - public FileUploaderPresenter(final Session session, final Provider<ContextNavigator> navProvider) { + public FileUploaderPresenter(final Session session) { this.session = session; - this.navProvider = navProvider; + this.onUploadComplete = new Event<StateToken>("onUploadComplete"); } + public void addOnUploadCompleteListener(final Listener<StateToken> slot) { + onUploadComplete.add(slot); + } + public boolean checkFolderChange() { final StateToken currentFolderStateToken = session.getCurrentStateToken().copy().clearDocument(); if (sameContainer()) { @@ -73,7 +77,7 @@ } public void onUploadComplete() { - navProvider.get().refresh(currentUploadStateToken); + onUploadComplete.fire(currentUploadStateToken); } public void resetPermittedExtensions() { Modified: trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java 2008-12-31 14:06:27 UTC (rev 1017) +++ trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java 2008-12-31 17:43:47 UTC (rev 1018) @@ -68,6 +68,8 @@ for (Container parentRef : parentAbsolutePath) { childAbsolutePath.add(parentRef); } + // FIXME: use + // childAbsolutePath.addAll(parentAbsolutePath); final Container child = new Container(newtitle, group, parent.getToolName()); childAbsolutePath.add(child); child.setLanguage(language); Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java 2008-12-31 14:06:27 UTC (rev 1017) +++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java 2008-12-31 17:43:47 UTC (rev 1018) @@ -93,7 +93,6 @@ @OneToMany(mappedBy = "container", cascade = CascadeType.ALL, fetch = FetchType.EAGER) private Set<Content> contents; - @OrderBy("createdOn DESC") @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) private List<Container> absolutePath; Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java 2008-12-31 14:06:27 UTC (rev 1017) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java 2008-12-31 17:43:47 UTC (rev 1018) @@ -74,8 +74,12 @@ view.setNoPreview(); } } else { - if ((contentBody == null || contentBody.length() == 0) && state.getContentRights().isEditable()) { - view.setInfoMessage(i18n.t("There is no text in this page. Feel free to edit this page")); + if ((contentBody == null || contentBody.length() == 0)) { + if (state.getContentRights().isEditable()) { + view.setInfoMessage(i18n.t("There is no text in this page. Feel free to edit this page")); + } else { + view.setInfoMessage(i18n.t("There is no text in this page")); + } } else { view.setRawContent(contentBody); } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigator.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigator.java 2008-12-31 14:06:27 UTC (rev 1017) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigator.java 2008-12-31 17:43:47 UTC (rev 1018) @@ -22,9 +22,12 @@ import org.ourproject.kune.platf.client.dto.ContentStatusDTO; import org.ourproject.kune.platf.client.dto.StateContainerDTO; import org.ourproject.kune.platf.client.dto.StateToken; +import org.ourproject.kune.platf.client.ui.upload.FileUploader; public interface ContextNavigator { + void addFileUploaderListener(FileUploader uploader); + void attach(); void clear(); @@ -35,8 +38,6 @@ boolean isSelected(StateToken stateToken); - void refresh(StateToken stateToken); - void selectItem(StateToken stateToken); void setEditOnNextStateChange(boolean edit); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java 2008-12-31 14:06:27 UTC (rev 1017) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java 2008-12-31 17:43:47 UTC (rev 1018) @@ -54,33 +54,30 @@ private TreePanel treePanel; private TreeEditor treeEditor; private final WorkspaceSkeleton ws; - private boolean fireOnTextChange; + private boolean mustFireOnTextChange; private boolean isEditable; private final ActionManager actionManager; private final ContextNavigatorPresenter presenter; private final MenuItemsContainer<StateToken> menuItemsContainer; + private boolean mustFireOnExpand; - // private final Panel generalPanel; - public ContextNavigatorPanel(final ContextNavigatorPresenter presenter, final I18nTranslationService i18n, final WorkspaceSkeleton ws, final ActionManager actionManager) { this.presenter = presenter; this.ws = ws; this.actionManager = actionManager; - fireOnTextChange = true; + mustFireOnTextChange = true; + mustFireOnExpand = true; isEditable = false; menuItemsContainer = new MenuItemsContainer<StateToken>(); - // generalPanel = new Panel(); - // generalPanel.setLayout(new FitLayout()); - // generalPanel.setAutoScroll(false); - // generalPanel.setBorder(false); } public void addItem(final ContextNavigatorItem item) { final String nodeId = item.getId(); TreeNode node = treePanel.getNodeById(nodeId); if (node == null) { + // Log.info("Adding tree node " + nodeId); final TreeNode child = new TreeNode(item.getText()); child.setId(nodeId); final String icon = item.getIconUrl(); @@ -105,20 +102,22 @@ child.addListener(new TreeNodeListenerAdapter() { @Override public void onTextChange(final Node node, final String text, final String oldText) { - if (fireOnTextChange) { + if (mustFireOnTextChange) { presenter.onItemRename(getToken(node), text, oldText); } } }); - if (!item.getStateToken().hasAll()) { - // is a container + boolean isContainer = !item.getStateToken().hasAll(); + if (isContainer) { child.setExpandable(true); child.setSingleClickExpand(true); child.addListener(new TreeNodeListenerAdapter() { @Override public void onExpand(final Node node) { - treePanel.getNodeById(node.getId()).select(); - presenter.gotoToken(getToken(node)); + if (mustFireOnExpand) { + treePanel.getNodeById(node.getId()).select(); + presenter.gotoToken(getToken(node)); + } } }); } else { @@ -135,7 +134,7 @@ ContentStatusDTO status = item.getContentStatus(); setNodeStatus(child, status); } else { - Log.error("Error building file tree, parent folder not found"); + Log.error("Error building file tree, parent folder " + item.getParentId() + " not found"); } } else { // the node already created @@ -150,31 +149,10 @@ menuItemsContainer.clear(); } - // public void attach() { - // if (!generalPanel.isRendered()) { - // Site.info("attach"); - // ws.getEntityWorkspace().setContext(generalPanel); - // generalPanel.doLayout(); - // } - // if (!treePanel.isRendered()) { - // Site.info("added"); - // generalPanel.add(treePanel); - // generalPanel.doLayout(); - // treePanel.doLayout(); - // } - // } - public void detach() { clear(); } - // public void detach() { - // if (generalPanel.isRendered()) { - // Site.info("detach"); - // generalPanel.removeFromParent(); - // } - // } - public void editItem(final String id) { treeEditor.startEdit(getNode(id)); } @@ -190,17 +168,19 @@ public void selectItem(final String id) { final TreeNode item = getNode(id); if (item != null) { - item.select(); if (item.getParentNode() != null) { if (treePanel.isRendered()) { + mustFireOnExpand = false; item.ensureVisible(); + mustFireOnExpand = true; } } if (item.getChildNodes().length > 0) { item.expand(); } + item.select(); } else { - Log.error("Error building file tree, current token not found"); + Log.error("Error building file tree, current token " + id + " not found"); } } @@ -320,7 +300,7 @@ } private void setFireOnTextChange(final boolean fireOnTextChange) { - this.fireOnTextChange = fireOnTextChange; + this.mustFireOnTextChange = fireOnTextChange; } private void setNodeStatus(final TreeNode node, ContentStatusDTO status) { Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2008-12-31 14:06:27 UTC (rev 1017) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2008-12-31 17:43:47 UTC (rev 1018) @@ -39,13 +39,13 @@ import org.ourproject.kune.platf.client.dto.StateToken; import org.ourproject.kune.platf.client.dto.UserInfoDTO; import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry; -import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple; import org.ourproject.kune.platf.client.rpc.ContentServiceAsync; import org.ourproject.kune.platf.client.state.Session; import org.ourproject.kune.platf.client.state.StateManager; import org.ourproject.kune.platf.client.ui.KuneUiUtils; import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils; import org.ourproject.kune.platf.client.ui.download.ImageSize; +import org.ourproject.kune.platf.client.ui.upload.FileUploader; import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; import org.ourproject.kune.workspace.client.title.RenameAction; @@ -92,11 +92,21 @@ confRenameListener(); } + public void addFileUploaderListener(FileUploader uploader) { + uploader.addOnUploadCompleteListener(new Listener<StateToken>() { + public void onEvent(StateToken currentUploadStateToken) { + if (currentUploadStateToken.hasSameContainer(session.getCurrentStateToken())) { + stateManager.reload(); + } + } + }); + } + public void attach() { // FIXME At the moment detach (removeFromParent) destroy the gwt-ext // TreePanel and the widget must be recreated (cannot be attached again // like in gwt) - setState(session.getCurrentState(), true); + // setState(session.getCurrentState(), true); toolbar.attach(); } @@ -141,16 +151,6 @@ return editOnNextStateChange; } - public void refresh(final StateToken stateToken) { - contentServiceProvider.get().getContent(session.getUserHash(), stateToken, - new AsyncCallbackSimple<StateAbstractDTO>() { - public void onSuccess(final StateAbstractDTO state) { - clear(); - setState(state, false); - } - }); - } - public void selectItem(final StateToken stateToken) { view.selectItem(genId(stateToken)); toolbar.disableMenusAndClearButtons(); @@ -199,9 +199,6 @@ // Do the path to our current content createTreePath(stateToken, container.getAbsolutePath(), containerRights); - // Process container childs - createChildItems(container, containerRights); - // Process our current content/container final ActionItemCollection<StateToken> actionItems = new ActionItemCollection<StateToken>(); if (isContent) { @@ -224,6 +221,9 @@ actionsByItem.put(stateToken, actionItems); + // Process container childs + createChildItems(container, containerRights); + // Finaly if (mustEditOnNextStateChange()) { // Code smell Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java 2008-12-31 14:06:27 UTC (rev 1017) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java 2008-12-31 17:43:47 UTC (rev 1018) @@ -18,8 +18,6 @@ * */package org.ourproject.kune.workspace.client.skel; -import org.ourproject.kune.workspace.client.site.Site; - import com.google.gwt.user.client.ui.Widget; import com.gwtext.client.widgets.Component; import com.gwtext.client.widgets.Panel; @@ -96,16 +94,16 @@ @Override public void onHide(Component component) { super.onHide(component); - openFirst(); + openFirstIfActiveNotVisible(); } @Override public void onShow(Component component) { super.onShow(component); - openFirst(); + openFirstIfActiveNotVisible(); } - private void openFirst() { + private void openFirstIfActiveNotVisible() { if (accordionLayout.getActiveItem() != null && accordionLayout.getActiveItem().isHidden()) { for (Component compo : entitySummary.getComponents()) { Panel panel = (Panel) compo; @@ -114,7 +112,6 @@ if (panel.isCollapsed()) { // And not expanded panel.expand(false); - Site.info("expanding: " + panel.getTitle()); } // Don't continue break; Modified: trunk/src/test/java/org/ourproject/kune/platf/client/ui/dialogs/upload/FileUploaderPresenterTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/client/ui/dialogs/upload/FileUploaderPresenterTest.java 2008-12-31 14:06:27 UTC (rev 1017) +++ trunk/src/test/java/org/ourproject/kune/platf/client/ui/dialogs/upload/FileUploaderPresenterTest.java 2008-12-31 17:43:47 UTC (rev 1018) @@ -23,7 +23,7 @@ public void before() { session = Mockito.mock(Session.class); view = Mockito.mock(FileUploaderView.class); - presenter = new FileUploaderPresenter(session, null); + presenter = new FileUploaderPresenter(session); presenter.init(view); Mockito.stub(session.getUserHash()).toReturn(SOMEUSER_HASH); }
participants (1)
-
vjrj