Author: vjrj Date: 2008-12-26 10:41:23 +0100 (Fri, 26 Dec 2008) New Revision: 1016 Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/IconLabelEditable.java Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/EditableIconLabel.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/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/ctxnav/ContextNavigatorView.java trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePanel.java Log: Some bug fixed Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css =================================================================== --- trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css 2008-12-23 22:22:43 UTC (rev 1015) +++ trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css 2008-12-26 09:41:23 UTC (rev 1016) @@ -540,7 +540,6 @@ } .kune-EditableLabel { - } .kune-EditableLabel .kune-EditableLabel-editable { Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java 2008-12-23 22:22:43 UTC (rev 1015) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java 2008-12-26 09:41:23 UTC (rev 1016) @@ -138,8 +138,8 @@ final String initialWindowTitle = Window.getTitle(); chatOptions.userOptions = userChatOptions; if (emiteUIProvider.get().isDialogNotStarted()) { - emiteUIProvider.get().start(userChatOptions, chatOptions.httpBase, chatOptions.roomHost, - initialWindowTitle, avatarProvider, i18n.t("Chat")); + emiteUIProvider.get().start(userChatOptions, chatOptions.httpBase, chatOptions.domain, + chatOptions.roomHost, avatarProvider, i18n.t("Chat")); } else { emiteUIProvider.get().setEnableStatusUI(true); emiteUIProvider.get().refreshUserInfo(chatOptions.userOptions); Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-12-23 22:22:43 UTC (rev 1015) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-12-26 09:41:23 UTC (rev 1016) @@ -59,8 +59,7 @@ public void doSessionExpired() { onSessionExpired.fire(); - getWorkspaceSkeleton().showAlertMessage(i18n.t("Session expired"), - i18n.t("Your session has expired. Please log in again.")); + Site.info("Your session has expired. Please log in again."); } public WorkspaceSkeleton getWorkspaceSkeleton() { Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/EditableIconLabel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/EditableIconLabel.java 2008-12-23 22:22:43 UTC (rev 1015) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/EditableIconLabel.java 2008-12-26 09:41:23 UTC (rev 1016) @@ -19,18 +19,15 @@ */ package org.ourproject.kune.platf.client.ui; -import com.calclab.suco.client.listener.Event2; -import com.calclab.suco.client.listener.Listener2; import com.google.gwt.user.client.ui.AbstractImagePrototype; -import com.google.gwt.user.client.ui.ChangeListener; import com.google.gwt.user.client.ui.ClickListener; import com.google.gwt.user.client.ui.Composite; -import com.google.gwt.user.client.ui.FocusListener; -import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.MouseListenerAdapter; -import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.Widget; +import com.gwtext.client.widgets.MessageBox; +import com.gwtext.client.widgets.MessageBoxConfig; +@Deprecated public class EditableIconLabel extends Composite { private boolean useDoubleClick; @@ -40,15 +37,10 @@ private EditableClickListener editableListener; private MouseListenerAdapter mouseOverListener; private final AbstractLabel label; - @SuppressWarnings("unused") private String renameDialogTitle; - @SuppressWarnings("unused") private String renameDialogLabel; private String doubleClickToRenameLabel; private String clickToRenameLabel; - private Event2<String, String> onEdit; - private TextBox editor; - private HorizontalPanel hp; public EditableIconLabel(final AbstractImagePrototype icon, final String text, final boolean useDoubleClick, final EditableClickListener editableListenerOrig) { @@ -60,7 +52,6 @@ final boolean useDoubleClick, final EditableClickListener editableListenerOrig) { label = new IconHyperlink(icon, text, targetHistoryToken); init(text, useDoubleClick, editableListenerOrig); - this.onEdit = new Event2<String, String>("onEdit"); } public EditableIconLabel(final EditableClickListener editableListener) { @@ -71,7 +62,6 @@ final EditableClickListener editableListenerOrig) { label = new LabelWrapper(text, wordWrap); init(text, useDoubleClick, editableListenerOrig); - this.onEdit = new Event2<String, String>("onEdit"); } public EditableIconLabel(final String text, final boolean useDoubleClick, @@ -91,10 +81,6 @@ return label.getText(); } - public void onEdit(final Listener2<String, String> slot) { - onEdit.add(slot); - } - public void restoreOldText() { label.setText(oldText); this.currentText = this.oldText; @@ -131,12 +117,10 @@ this.editableListener = editableListener; } - @Deprecated public void setRenameDialogLabel(final String renameDialogLabel) { this.renameDialogLabel = renameDialogLabel; } - @Deprecated public void setRenameDialogTitle(final String renameDialogTitle) { this.renameDialogTitle = renameDialogTitle; } @@ -147,34 +131,21 @@ label.setText(text); } - private void afterEdit() { - String text = editor.getText(); - onEdit.fire(currentText, text); - editor.setVisible(false); - editor.setReadOnly(true); - label.setVisible(true); - label.removeStyleDependentName("high"); - } - private void init(final String text, final boolean useDoubleClick, final EditableClickListener editableListenerOrig) { doubleClickToRenameLabel = "Double click to rename"; clickToRenameLabel = "Click to rename"; renameDialogLabel = "Write a new name:"; renameDialogTitle = "Rename"; - hp = new HorizontalPanel(); - hp.add((Widget) label); - initWidget(hp); + initWidget((Widget) label); this.currentText = text; this.oldText = text; this.useDoubleClick = useDoubleClick; this.editableListener = editableListenerOrig; - this.onEdit = new Event2<String, String>("onEdit"); this.listener = new ClickListener() { public void onClick(final Widget sender) { - showEditor(); + showEditableDialog(); } }; - mouseOverListener = new MouseListenerAdapter() { @Override public void onMouseEnter(final Widget sender) { @@ -199,32 +170,30 @@ label.removeMouseListener(mouseOverListener); } - private void showEditor() { - int hpWidth = hp.getParent().getOffsetWidth(); - label.setVisible(false); - if (editor == null) { - editor = new TextBox(); - editor.setStyleName("k-eil-edit"); - hp.add(editor); - editor.addFocusListener(new FocusListener() { - public void onFocus(Widget sender) { - } - - public void onLostFocus(Widget sender) { - afterEdit(); - } - }); - editor.addChangeListener(new ChangeListener() { - public void onChange(Widget sender) { - afterEdit(); - } - }); - } - editor.setReadOnly(false); - editor.setPixelSize(hpWidth < 100 ? 100 : hpWidth, 21); - editor.setText(currentText); - editor.setVisible(true); - editor.setFocus(true); + private void showEditableDialog() { + MessageBox.show(new MessageBoxConfig() { + { + // i18n + setClosable(true); + setModal(true); + setWidth(300); + setDefaultTextHeight(2); + setButtons(MessageBox.OKCANCEL); + setTitle(renameDialogTitle); + setMsg(renameDialogLabel); + setCallback(new MessageBox.PromptCallback() { + public void execute(final String btnID, final String text) { + if (btnID.equals("ok") && text != null) { + editableListener.onEdited(text); + } else { + // Do nothing + } + } + }); + setMultiline(true); + setValue(currentText); + } + }); } } Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/IconLabelEditable.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/IconLabelEditable.java 2008-12-23 22:22:43 UTC (rev 1015) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/IconLabelEditable.java 2008-12-26 09:41:23 UTC (rev 1016) @@ -0,0 +1,199 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.ourproject.kune.platf.client.ui; + +import com.calclab.suco.client.listener.Event2; +import com.calclab.suco.client.listener.Listener2; +import com.google.gwt.user.client.ui.AbstractImagePrototype; +import com.google.gwt.user.client.ui.ChangeListener; +import com.google.gwt.user.client.ui.ClickListener; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.FocusListener; +import com.google.gwt.user.client.ui.HorizontalPanel; +import com.google.gwt.user.client.ui.MouseListenerAdapter; +import com.google.gwt.user.client.ui.TextBox; +import com.google.gwt.user.client.ui.Widget; + +public class IconLabelEditable extends Composite { + + private boolean useDoubleClick; + private ClickListener listener; + private String currentText; + private String oldText; + private MouseListenerAdapter mouseOverListener; + private final AbstractLabel label; + private String doubleClickToRenameLabel; + private String clickToRenameLabel; + private Event2<String, String> onEdit; + private TextBox editor; + private HorizontalPanel hp; + + public IconLabelEditable() { + this(""); + } + + public IconLabelEditable(final AbstractImagePrototype icon, final String text, final boolean useDoubleClick) { + label = new IconLabel(icon, text); + init(text, useDoubleClick); + } + + public IconLabelEditable(final AbstractImagePrototype icon, final String text, final String targetHistoryToken, + final boolean useDoubleClick) { + label = new IconHyperlink(icon, text, targetHistoryToken); + init(text, useDoubleClick); + } + + public IconLabelEditable(final String text) { + this(text, false); + } + + public IconLabelEditable(final String text, final boolean useDoubleClick) { + this(text, false, false); + } + + public IconLabelEditable(final String text, final boolean wordWrap, final boolean useDoubleClick) { + label = new LabelWrapper(text, wordWrap); + init(text, useDoubleClick); + } + + public String getText() { + return label.getText(); + } + + public void onEdit(final Listener2<String, String> slot) { + onEdit.add(slot); + } + + public void restoreOldText() { + label.setText(oldText); + this.currentText = this.oldText; + } + + public void setClickToRenameLabel(final String clickToRenameLabel) { + this.clickToRenameLabel = clickToRenameLabel; + } + + public void setDoubleClickToRenameLabel(final String doubleClickToRenameLabel) { + this.doubleClickToRenameLabel = doubleClickToRenameLabel; + } + + public void setEditable(final boolean editable) { + reset(); + if (editable) { + if (useDoubleClick) { + label.setTitle(doubleClickToRenameLabel); + label.addDoubleClickListener(listener); + } else { + label.setTitle(clickToRenameLabel); + label.addClickListener(listener); + } + label.addStyleDependentName("editable"); + // label.addDoubleClickListener(listener); + label.addMouseListener(mouseOverListener); + } else { + label.setTitle(null); + label.addStyleDependentName("noneditable"); + } + } + + public void setText(final String text) { + this.oldText = this.currentText; + this.currentText = text; + label.setText(text); + } + + private void afterEdit() { + String text = editor.getText(); + onEdit.fire(currentText, text); + editor.setVisible(false); + editor.setReadOnly(true); + label.setVisible(true); + label.removeStyleDependentName("high"); + } + + private void init(final String text, final boolean useDoubleClick) { + this.onEdit = new Event2<String, String>("onEdit"); + doubleClickToRenameLabel = "Double click to rename"; + clickToRenameLabel = "Click to rename"; + hp = new HorizontalPanel(); + hp.add((Widget) label); + initWidget(hp); + this.currentText = text; + this.oldText = text; + this.useDoubleClick = useDoubleClick; + this.listener = new ClickListener() { + public void onClick(final Widget sender) { + showEditor(); + } + }; + + mouseOverListener = new MouseListenerAdapter() { + @Override + public void onMouseEnter(final Widget sender) { + label.addStyleDependentName("high"); + } + + @Override + public void onMouseLeave(final Widget sender) { + label.removeStyleDependentName("high"); + } + }; + label.setStylePrimaryName("kune-EditableLabel"); + label.addMouseListener(mouseOverListener); + setEditable(false); + } + + private void reset() { + label.removeStyleDependentName("noneditable"); + label.removeStyleDependentName("editable"); + label.removeClickListener(listener); + label.removeDoubleClickListener(listener); + label.removeMouseListener(mouseOverListener); + } + + private void showEditor() { + int hpWidth = hp.getParent().getOffsetWidth(); + label.setVisible(false); + if (editor == null) { + editor = new TextBox(); + editor.setStyleName("k-eil-edit"); + hp.add(editor); + editor.addFocusListener(new FocusListener() { + public void onFocus(Widget sender) { + } + + public void onLostFocus(Widget sender) { + afterEdit(); + } + }); + editor.addChangeListener(new ChangeListener() { + public void onChange(Widget sender) { + editor.setFocus(false); + } + }); + } + editor.setReadOnly(false); + editor.setPixelSize(hpWidth < 100 ? 100 : hpWidth, 21); + editor.setText(currentText); + editor.setVisible(true); + editor.setFocus(true); + } + +} 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-23 22:22:43 UTC (rev 1015) +++ trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java 2008-12-26 09:41:23 UTC (rev 1016) @@ -60,14 +60,15 @@ public Container createFolder(final Group group, final Container parent, final String name, final I18nLanguage language, String typeId) { - findInexistentName(parent, name); + FilenameUtils.checkBasicFilename(name); + String newtitle = findInexistentName(parent, name); final List<Container> parentAbsolutePath = parent.getAbsolutePath(); final List<Container> childAbsolutePath = new ArrayList<Container>(); for (Container parentRef : parentAbsolutePath) { childAbsolutePath.add(parentRef); } - final Container child = new Container(name, group, parent.getToolName()); + final Container child = new Container(newtitle, group, parent.getToolName()); childAbsolutePath.add(child); child.setLanguage(language); child.setAbsolutePath(childAbsolutePath); 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-23 22:22:43 UTC (rev 1015) +++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Container.java 2008-12-26 09:41:23 UTC (rev 1016) @@ -20,10 +20,12 @@ package org.ourproject.kune.platf.server.domain; import java.util.ArrayList; +import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Set; +import javax.persistence.Basic; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; @@ -35,6 +37,7 @@ import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.OneToOne; +import javax.persistence.OrderBy; import javax.persistence.Table; import javax.persistence.Transient; @@ -81,13 +84,16 @@ @JoinColumn private Container parent; + @OrderBy("createdOn DESC") @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL, fetch = FetchType.EAGER) private Set<Container> childs; @ContainedIn + @OrderBy("createdOn DESC") @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; @@ -97,6 +103,12 @@ @OneToOne(cascade = CascadeType.ALL) private AccessLists accessLists; + @Basic(optional = false) + private Long createdOn; + + @Basic(optional = true) + private Date deletedOn; + public Container() { this(null, null, null); } @@ -108,6 +120,7 @@ this.contents = new HashSet<Content>(); this.childs = new HashSet<Container>(); this.absolutePath = new ArrayList<Container>(); + this.createdOn = System.currentTimeMillis(); } public void addChild(final Container child) { @@ -152,6 +165,14 @@ return contents; } + public Long getCreatedOn() { + return createdOn; + } + + public Date getDeletedOn() { + return deletedOn; + } + public Long getId() { return id; } @@ -233,6 +254,14 @@ this.contents = contents; } + public void setCreatedOn(Long createdOn) { + this.createdOn = createdOn; + } + + public void setDeletedOn(Date deletedOn) { + this.deletedOn = deletedOn; + } + public void setId(final Long id) { this.id = id; } 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-23 22:22:43 UTC (rev 1015) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigator.java 2008-12-26 09:41:23 UTC (rev 1016) @@ -41,8 +41,6 @@ void setEditOnNextStateChange(boolean edit); - void setFireOnTextChange(boolean visible); - void setItemStatus(StateToken stateToken, ContentStatusDTO status); void setState(StateContainerDTO state, boolean selectItem); 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-23 22:22:43 UTC (rev 1015) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java 2008-12-26 09:41:23 UTC (rev 1016) @@ -208,17 +208,15 @@ this.isEditable = editable; } - public void setFireOnTextChange(final boolean fireOnTextChange) { - this.fireOnTextChange = fireOnTextChange; - } - public void setItemStatus(final String id, ContentStatusDTO status) { setNodeStatus(getNode(id), status); } public void setItemText(final String genId, final String text) { final TreeNode node = getNode(genId); + setFireOnTextChange(false); node.setText(text); + setFireOnTextChange(true); } public void setRootItem(final String id, final String text, final StateToken stateToken) { @@ -321,18 +319,23 @@ return node.getAttribute("href").substring(1); } + private void setFireOnTextChange(final boolean fireOnTextChange) { + this.fireOnTextChange = fireOnTextChange; + } + private void setNodeStatus(final TreeNode node, ContentStatusDTO status) { switch (status) { + // FIXME: while not finished case publishedOnline: - node.setCls("k-textnormal"); + // node.setCls("k-textnormal"); break; case inTheDustbin: case rejected: - node.setCls("k-textlinethrough"); + // node.setCls("k-textlinethrough"); break; case editingInProgress: case submittedForEvaluation: - node.setCls("k-textunderline"); + // node.setCls("k-textunderline"); break; } } 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-23 22:22:43 UTC (rev 1015) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2008-12-26 09:41:23 UTC (rev 1016) @@ -141,10 +141,6 @@ return editOnNextStateChange; } - public void onItemRename(final String token, final String newName, final String oldName) { - renameAction.rename(new StateToken(token), oldName, newName); - } - public void refresh(final StateToken stateToken) { contentServiceProvider.get().getContent(session.getUserHash(), stateToken, new AsyncCallbackSimple<StateAbstractDTO>() { @@ -164,10 +160,6 @@ editOnNextStateChange = edit; } - public void setFireOnTextChange(boolean visible) { - view.setFireOnTextChange(visible); - } - public void setItemStatus(final StateToken stateToken, ContentStatusDTO status) { view.setItemStatus(genId(stateToken), status); } @@ -244,6 +236,10 @@ toolbar.attach(); } + protected void onItemRename(final String token, final String newName, final String oldName) { + renameAction.rename(new StateToken(token), oldName, newName); + } + private ActionItemCollection<StateToken> addItem(final String title, final String contentTypeId, final BasicMimeTypeDTO mimeType, final ContentStatusDTO status, final StateToken stateToken, final StateToken parentStateToken, final AccessRightsDTO rights, final boolean isNodeSelected) { @@ -265,17 +261,13 @@ private void confRenameListener() { Listener2<StateToken, String> onSuccess = new Listener2<StateToken, String>() { public void onEvent(StateToken token, String newName) { - view.setFireOnTextChange(false); setItemText(token, newName); - view.setFireOnTextChange(true); } }; renameAction.onSuccess(onSuccess); Listener2<StateToken, String> onFail = new Listener2<StateToken, String>() { public void onEvent(StateToken token, String oldName) { - view.setFireOnTextChange(false); setItemText(token, oldName); - view.setFireOnTextChange(true); } }; renameAction.onFail(onFail); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorView.java 2008-12-23 22:22:43 UTC (rev 1015) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorView.java 2008-12-26 09:41:23 UTC (rev 1016) @@ -39,8 +39,6 @@ void setEditable(boolean editable); - void setFireOnTextChange(boolean fire); - void setItemStatus(String id, ContentStatusDTO status); void setItemText(String id, String text); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java 2008-12-23 22:22:43 UTC (rev 1015) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java 2008-12-26 09:41:23 UTC (rev 1016) @@ -23,6 +23,7 @@ import org.ourproject.kune.platf.client.actions.ActionItem; import org.ourproject.kune.platf.client.actions.ActionItemCollection; import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor; +import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor; import org.ourproject.kune.platf.client.actions.ActionToolbarPosition; import org.ourproject.kune.platf.client.actions.BeforeActionListener; import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbar; @@ -49,7 +50,7 @@ private Listener<String> onSave; private Listener0 onEditCancelled; private final ActionToolbar<StateToken> toolbar; - private ActionToolbarButtonDescriptor<StateToken> save; + private ActionToolbarMenuDescriptor<StateToken> save; private ActionToolbarButtonDescriptor<StateToken> close; private final I18nUITranslationService i18n; private final BeforeActionListener beforeStateChangeListener; @@ -193,13 +194,14 @@ } private void createActions() { - save = new ActionToolbarButtonDescriptor<StateToken>(AccessRolDTO.Viewer, ActionToolbarPosition.topbar, + save = new ActionToolbarMenuDescriptor<StateToken>(AccessRolDTO.Viewer, ActionToolbarPosition.topbar, new Listener<StateToken>() { public void onEvent(final StateToken token) { onSave(); } }); save.setTextDescription(i18n.tWithNT("Save", "used in button")); + save.setParentMenuTitle(i18n.t("File")); save.setId(SAVE_ID); // save.setIconUrl("images/"); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java 2008-12-23 22:22:43 UTC (rev 1015) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java 2008-12-26 09:41:23 UTC (rev 1016) @@ -21,7 +21,6 @@ import org.ourproject.kune.platf.client.dto.LicenseDTO; import org.ourproject.kune.platf.client.services.I18nTranslationService; -import org.ourproject.kune.platf.client.ui.KuneUiUtils; import org.ourproject.kune.workspace.client.skel.SimpleToolbar; import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; @@ -100,7 +99,7 @@ public void showLicense(final String groupName, final LicenseDTO licenseDTO) { String licenseText = i18n.t("© [%s], under license: [%s]", groupName, licenseDTO.getLongName()); licenseLabel.setText(licenseText); - KuneUiUtils.setQuickTip(licenseLabel, licenseText); + // KuneUiUtils.setQuickTip(licenseLabel, licenseText); licenseImage.setUrl(licenseDTO.getImageUrl()); fade(false); } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java 2008-12-23 22:22:43 UTC (rev 1015) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java 2008-12-26 09:41:23 UTC (rev 1016) @@ -42,6 +42,7 @@ @Override public void createAndShow() { + // FIXME: use onAfterCreate in Factory/Module entityPreferencesGroup.createAll(); super.createAndShow(); } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePanel.java 2008-12-23 22:22:43 UTC (rev 1015) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePanel.java 2008-12-26 09:41:23 UTC (rev 1016) @@ -19,8 +19,7 @@ */ package org.ourproject.kune.workspace.client.title; -import org.ourproject.kune.platf.client.ui.EditableClickListener; -import org.ourproject.kune.platf.client.ui.EditableIconLabel; +import org.ourproject.kune.platf.client.ui.IconLabelEditable; import org.ourproject.kune.workspace.client.skel.SimpleToolbar; import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; @@ -29,16 +28,12 @@ public class EntityTitlePanel implements EntityTitleView { public static final String ENTITY_TITLE_RIGHT_TITLE = "k-entity-title-title"; - private final EditableIconLabel titleLabel; + private final IconLabelEditable titleLabel; private final Image icon; public EntityTitlePanel(final WorkspaceSkeleton ws, final EntityTitlePresenter presenter) { icon = new Image(); - titleLabel = new EditableIconLabel(new EditableClickListener() { - public void onEdited(final String newName) { - } - }); - + titleLabel = new IconLabelEditable(); titleLabel.onEdit(new Listener2<String, String>() { public void onEvent(String oldName, String newName) { presenter.onTitleRename(oldName, newName);