Author: vjrj_ Date: 2011-04-25 19:07:00 +0200 (Mon, 25 Apr 2011) New Revision: 1318 Added: trunk/src/main/java/cc/kune/chat/client/snd/SndClickEvent.java trunk/src/main/java/cc/kune/docs/client/viewers/AbstractFolderViewerPanel.java trunk/src/main/java/cc/kune/docs/client/viewers/FolderItemWidget.java trunk/src/main/java/cc/kune/docs/client/viewers/FolderItemWidget.ui.xml trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsFlowPanel.java trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsFlowPanel.ui.xml trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsTablePanel.java trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsTablePanel.ui.xml Removed: trunk/src/main/java/cc/kune/chat/client/snd/ClickEvent.java trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPanel.java trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPanel.ui.xml Modified: trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java trunk/src/main/java/cc/kune/chat/client/snd/KuneSoundManager.java trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java trunk/src/main/java/cc/kune/core/public/ws.css trunk/src/main/java/cc/kune/docs/client/DocsGinModule.java trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPresenter.java Log: FolderViewer as Table Modified: trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java =================================================================== --- trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java 2011-04-18 17:25:02 UTC (rev 1317) +++ trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java 2011-04-25 17:07:00 UTC (rev 1318) @@ -20,7 +20,7 @@ package cc.kune.chat.client; import cc.kune.chat.client.ChatClientDefault.ChatClientAction; -import cc.kune.chat.client.snd.ClickEvent; +import cc.kune.chat.client.snd.SndClickEvent; import com.calclab.hablar.core.client.mvp.HablarEventBus; import com.calclab.hablar.signals.client.SignalPreferences; @@ -45,7 +45,7 @@ final int unattendedChatsCount = unattendedManager.getSize(); if (unattendedChatsCount > 0 && active == false) { active = true; - ClickEvent.fire(eventBus); + SndClickEvent.fire(eventBus); action.setBlink(true); } else if (unattendedChatsCount == 0 && active == true) { Deleted: trunk/src/main/java/cc/kune/chat/client/snd/ClickEvent.java =================================================================== --- trunk/src/main/java/cc/kune/chat/client/snd/ClickEvent.java 2011-04-18 17:25:02 UTC (rev 1317) +++ trunk/src/main/java/cc/kune/chat/client/snd/ClickEvent.java 2011-04-25 17:07:00 UTC (rev 1318) @@ -1,58 +0,0 @@ -package cc.kune.chat.client.snd; - -import com.google.gwt.event.shared.EventHandler; -import com.google.gwt.event.shared.GwtEvent; -import com.google.gwt.event.shared.HandlerRegistration; - -import com.google.gwt.event.shared.HasHandlers; - -public class ClickEvent extends GwtEvent<ClickEvent.ClickHandler> { - - public interface HasClickHandlers extends HasHandlers { - HandlerRegistration addClickHandler(ClickHandler handler); - } - - public interface ClickHandler extends EventHandler { - public void onClick(ClickEvent event); - } - - private static final Type<ClickHandler> TYPE = new Type<ClickHandler>(); - - public static void fire(HasHandlers source) { - source.fireEvent(new ClickEvent()); - } - - public static Type<ClickHandler> getType() { - return TYPE; - } - - - public ClickEvent() { - } - - @Override - public Type<ClickHandler> getAssociatedType() { - return TYPE; - } - - @Override - protected void dispatch(ClickHandler handler) { - handler.onClick(this); - } - - @Override - public boolean equals(Object obj) { - return super.equals(obj); - } - - @Override - public int hashCode() { - return super.hashCode(); - } - - @Override - public String toString() { - return "ClickEvent[" - + "]"; - } -} Modified: trunk/src/main/java/cc/kune/chat/client/snd/KuneSoundManager.java =================================================================== --- trunk/src/main/java/cc/kune/chat/client/snd/KuneSoundManager.java 2011-04-18 17:25:02 UTC (rev 1317) +++ trunk/src/main/java/cc/kune/chat/client/snd/KuneSoundManager.java 2011-04-25 17:07:00 UTC (rev 1318) @@ -10,9 +10,9 @@ public KuneSoundManager(final EventBus eventBus, final SoundSignalsConfig soundConfig) { this.soundConfig = soundConfig; - eventBus.addHandler(ClickEvent.getType(), new ClickEvent.ClickHandler() { + eventBus.addHandler(SndClickEvent.getType(), new SndClickEvent.SndClickHandler() { @Override - public void onClick(final ClickEvent event) { + public void onClick(final SndClickEvent event) { createSoundManagerIfNeeded(); soundManager.play(); } Copied: trunk/src/main/java/cc/kune/chat/client/snd/SndClickEvent.java (from rev 1313, trunk/src/main/java/cc/kune/chat/client/snd/ClickEvent.java) =================================================================== --- trunk/src/main/java/cc/kune/chat/client/snd/SndClickEvent.java (rev 0) +++ trunk/src/main/java/cc/kune/chat/client/snd/SndClickEvent.java 2011-04-25 17:07:00 UTC (rev 1318) @@ -0,0 +1,55 @@ +package cc.kune.chat.client.snd; + +import com.google.gwt.event.shared.EventHandler; +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.event.shared.HasHandlers; + +public class SndClickEvent extends GwtEvent<SndClickEvent.SndClickHandler> { + + public interface HasClickHandlers extends HasHandlers { + HandlerRegistration addSndClickHandler(SndClickHandler handler); + } + + public interface SndClickHandler extends EventHandler { + public void onClick(SndClickEvent event); + } + + private static final Type<SndClickHandler> TYPE = new Type<SndClickHandler>(); + + public static void fire(final HasHandlers source) { + source.fireEvent(new SndClickEvent()); + } + + public static Type<SndClickHandler> getType() { + return TYPE; + } + + public SndClickEvent() { + } + + @Override + protected void dispatch(final SndClickHandler handler) { + handler.onClick(this); + } + + @Override + public boolean equals(final Object obj) { + return super.equals(obj); + } + + @Override + public Type<SndClickHandler> getAssociatedType() { + return TYPE; + } + + @Override + public int hashCode() { + return super.hashCode(); + } + + @Override + public String toString() { + return "SndClickEvent[" + "]"; + } +} Modified: trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java 2011-04-18 17:25:02 UTC (rev 1317) +++ trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java 2011-04-25 17:07:00 UTC (rev 1318) @@ -42,7 +42,7 @@ this.server = server; this.eventBus = eventBus; this.cacheMap = new HashMap<StateToken, StateAbstractDTO>(); - useCache = false; + useCache = true; } @Override Modified: trunk/src/main/java/cc/kune/core/public/ws.css =================================================================== --- trunk/src/main/java/cc/kune/core/public/ws.css 2011-04-18 17:25:02 UTC (rev 1317) +++ trunk/src/main/java/cc/kune/core/public/ws.css 2011-04-25 17:07:00 UTC (rev 1318) @@ -844,7 +844,7 @@ white-space: nowrap; } */ -.k-sn-mainpanel .x-btn button,.k-sn-mainpanel button, button.k-button { +.k-sn-mainpanel .x-btn button,.k-sn-mainpanel button,button.k-button { font: 13px 'Ubuntu', arial; border: 2px solid #CCCCCC; cursor: pointer; @@ -867,13 +867,14 @@ padding-left: 25px !important; */ } -.k-sn-mainpanel .x-btn button:hover,.k-sn-mainpanel button:hover, .k-button button:hover { +.k-sn-mainpanel .x-btn button:hover,.k-sn-mainpanel button:hover,.k-button button:hover + { border: 2px orange solid; background: #f0f0f0; color: #855585; } -.k-sn-mainpanel .x-btn button:active,.k-sn-mainpanel button:active, .k-button +.k-sn-mainpanel .x-btn button:active,.k-sn-mainpanel button:active,.k-button button:active { border-top-color: #ffffff; background: #ffffff; @@ -1107,4 +1108,4 @@ .k-def-docbtn span { font-size: 13px !important; -} \ No newline at end of file +} Modified: trunk/src/main/java/cc/kune/docs/client/DocsGinModule.java =================================================================== --- trunk/src/main/java/cc/kune/docs/client/DocsGinModule.java 2011-04-18 17:25:02 UTC (rev 1317) +++ trunk/src/main/java/cc/kune/docs/client/DocsGinModule.java 2011-04-25 17:07:00 UTC (rev 1318) @@ -3,7 +3,7 @@ import cc.kune.docs.client.actions.DocsClientActions; import cc.kune.docs.client.viewers.DocViewerPanel; import cc.kune.docs.client.viewers.DocViewerPresenter; -import cc.kune.docs.client.viewers.FolderViewerPanel; +import cc.kune.docs.client.viewers.FolderViewerAsTablePanel; import cc.kune.docs.client.viewers.FolderViewerPresenter; import com.google.inject.Singleton; @@ -18,7 +18,7 @@ bindPresenter(DocViewerPresenter.class, DocViewerPresenter.DocViewerView.class, DocViewerPanel.class, DocViewerPresenter.DocViewerProxy.class); bindPresenter(FolderViewerPresenter.class, FolderViewerPresenter.FolderViewerView.class, - FolderViewerPanel.class, FolderViewerPresenter.FolderViewerProxy.class); + FolderViewerAsTablePanel.class, FolderViewerPresenter.FolderViewerProxy.class); } } Added: trunk/src/main/java/cc/kune/docs/client/viewers/AbstractFolderViewerPanel.java =================================================================== --- trunk/src/main/java/cc/kune/docs/client/viewers/AbstractFolderViewerPanel.java (rev 0) +++ trunk/src/main/java/cc/kune/docs/client/viewers/AbstractFolderViewerPanel.java 2011-04-25 17:07:00 UTC (rev 1318) @@ -0,0 +1,55 @@ +package cc.kune.docs.client.viewers; + +import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection; +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; + +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.gwtplatform.mvp.client.ViewImpl; + +public abstract class AbstractFolderViewerPanel extends ViewImpl implements FolderViewerView { + protected final GSpaceArmor gsArmor; + protected Widget widget; + + public AbstractFolderViewerPanel(final GSpaceArmor gsArmor) { + this.gsArmor = gsArmor; + } + + @Override + public Widget asWidget() { + return widget; + } + + @Override + public void attach() { + final ForIsWidget docContainer = gsArmor.getDocContainer(); + docContainer.add(widget); + } + + @Override + public void clear() { + gsArmor.getSubheaderToolbar().clear(); + UiUtils.clear(gsArmor.getDocContainer()); + UiUtils.clear(gsArmor.getDocHeader()); + } + + @Override + public void detach() { + clear(); + } + + @Override + public void setActions(final GuiActionDescCollection actions) { + gsArmor.getSubheaderToolbar().clear(); + gsArmor.getSubheaderToolbar().addAll(actions); + } + + @Override + public void setContainer(final StateContainerDTO state) { + gsArmor.getDocHeader().add(new InlineLabel(state.getTitle())); + } +} Property changes on: trunk/src/main/java/cc/kune/docs/client/viewers/AbstractFolderViewerPanel.java ___________________________________________________________________ Name: svn:mime-type + text/plain Added: trunk/src/main/java/cc/kune/docs/client/viewers/FolderItemWidget.java =================================================================== --- trunk/src/main/java/cc/kune/docs/client/viewers/FolderItemWidget.java (rev 0) +++ trunk/src/main/java/cc/kune/docs/client/viewers/FolderItemWidget.java 2011-04-25 17:07:00 UTC (rev 1318) @@ -0,0 +1,116 @@ +package cc.kune.docs.client.viewers; + +import cc.kune.common.client.actions.ui.ActionSimplePanel; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.BlurEvent; +import com.google.gwt.event.dom.client.FocusEvent; +import com.google.gwt.event.dom.client.HasAllFocusHandlers; +import com.google.gwt.event.dom.client.HasAllMouseHandlers; +import com.google.gwt.event.dom.client.HasClickHandlers; +import com.google.gwt.event.dom.client.HasDoubleClickHandlers; +import com.google.gwt.event.dom.client.MouseOutEvent; +import com.google.gwt.event.dom.client.MouseOverEvent; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.uibinder.client.UiHandler; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.FocusPanel; +import com.google.gwt.user.client.ui.HasText; +import com.google.gwt.user.client.ui.Image; +import com.google.gwt.user.client.ui.InlineLabel; +import com.google.gwt.user.client.ui.SimplePanel; +import com.google.gwt.user.client.ui.Widget; + +public class FolderItemWidget extends Composite implements HasText { + + interface FolderItemWidgetUiBinder extends UiBinder<Widget, FolderItemWidget> { + } + + private static FolderItemWidgetUiBinder uiBinder = GWT.create(FolderItemWidgetUiBinder.class); + + @UiField + FlowPanel flow; + @UiField + FocusPanel focusPanel; + @UiField + Image icon; + @UiField + SimplePanel menu; + @UiField + InlineLabel title; + + public FolderItemWidget(final ImageResource iconResource, final String title) { + initWidget(uiBinder.createAndBindUi(this)); + this.title.setText(title); + icon.setResource(iconResource); + } + + private void clearFocusStyles() { + focusPanel.removeStyleDependentName("nofocused"); + focusPanel.removeStyleDependentName("focused"); + } + + HasClickHandlers getRowClick() { + return focusPanel; + } + + HasDoubleClickHandlers getRowDoubleClick() { + return focusPanel; + } + + HasAllFocusHandlers getRowFocus() { + return focusPanel; + } + + HasAllMouseHandlers getRowMouse() { + return focusPanel; + } + + @Override + public String getText() { + return title.getText(); + } + + @UiHandler("focusPanel") + public void onBlur(final BlurEvent event) { + clearFocusStyles(); + focusPanel.addStyleDependentName("nofocused"); + } + + @UiHandler("focusPanel") + public void onFocus(final FocusEvent event) { + clearFocusStyles(); + focusPanel.addStyleDependentName("focused"); + } + + @UiHandler("focusPanel") + public void onOut(final MouseOutEvent event) { + clearFocusStyles(); + focusPanel.addStyleDependentName("nofocused"); + } + + @UiHandler("focusPanel") + public void onOver(final MouseOverEvent event) { + clearFocusStyles(); + focusPanel.addStyleDependentName("focused"); + } + + public void setMenu(final ActionSimplePanel toolbar) { + menu.add(toolbar); + } + + public void setSelect(final boolean selected) { + clearFocusStyles(); + focusPanel.removeStyleDependentName(selected ? "noselected" : "selected"); + focusPanel.addStyleDependentName(selected ? "selected" : "noselected"); + } + + @Override + public void setText(final String text) { + title.setText(text); + } + +} Property changes on: trunk/src/main/java/cc/kune/docs/client/viewers/FolderItemWidget.java ___________________________________________________________________ Name: svn:mime-type + text/plain Added: trunk/src/main/java/cc/kune/docs/client/viewers/FolderItemWidget.ui.xml =================================================================== --- trunk/src/main/java/cc/kune/docs/client/viewers/FolderItemWidget.ui.xml (rev 0) +++ trunk/src/main/java/cc/kune/docs/client/viewers/FolderItemWidget.ui.xml 2011-04-25 17:07:00 UTC (rev 1318) @@ -0,0 +1,56 @@ +<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> +<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" + xmlns:co="urn:ui:cc.kune.core.client" xmlns:g="urn:import:com.google.gwt.user.client.ui"> + <ui:style> + @external .k-folderitem-focus; + @external .k-folderitem-focus-focused; + @external .k-folderitem-focus-selected; + @external .k-folderitem-focus-noselected; + @external .k-folderitem-focus-nofocused; + .k-folderitem-focus { + background-color: none; + } + + .k-folderitem-focus-focused { + background-color: #F2F5FD; + } + + .k-folderitem-focus-selected { + background-color: #E3E9FF; + } + + .k-folderitem-focus-noselected { + } + + .k-folderitem-focus-nofocused { + + } + + .flow { + cursor: pointer; + border-bottom: 1px solid #F3F3F3; + line-height: 1.3em; + height: 28px; + } + + .title { + font-size: 16px; + margin-left: 5px; + } + + .icon { + margin: 5px; + } + + .menu { + float: right; + } + </ui:style> + <g:FocusPanel ui:field="focusPanel" styleName="{style.k-folderitem-focus}"> + <g:FlowPanel styleName="{style.flow}" ui:field="flow"> + <g:Image styleName="{style.icon}" ui:field="icon" /> + <g:InlineLabel styleName="{style.title}" ui:field="title" /> + <g:SimplePanel styleName="{style.menu}" ui:field="menu" /> + </g:FlowPanel> + </g:FocusPanel> +</ui:UiBinder> \ No newline at end of file Property changes on: trunk/src/main/java/cc/kune/docs/client/viewers/FolderItemWidget.ui.xml ___________________________________________________________________ Name: svn:mime-type + text/plain Copied: trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsFlowPanel.java (from rev 1316, trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPanel.java) =================================================================== --- trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsFlowPanel.java (rev 0) +++ trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsFlowPanel.java 2011-04-25 17:07:00 UTC (rev 1318) @@ -0,0 +1,83 @@ +package cc.kune.docs.client.viewers; + +import cc.kune.common.client.actions.gxtui.AbstractGxtMenuGui; +import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection; +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.core.shared.dto.StateContainerDTO; +import cc.kune.gspace.client.GSpaceArmor; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.dom.client.DoubleClickHandler; +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.Widget; +import com.google.inject.Inject; + +public class FolderViewerAsFlowPanel extends AbstractFolderViewerPanel { + interface FolderViewerAsFlowPanelUiBinder extends UiBinder<Widget, FolderViewerAsFlowPanel> { + } + private static FolderViewerAsFlowPanelUiBinder uiBinder = GWT.create(FolderViewerAsFlowPanelUiBinder.class); + + @UiField + FlowPanel flow; + int ICONLABELMAXSIZE = 20; + int ICONSIZE = 100; + + @Inject + public FolderViewerAsFlowPanel(final GSpaceArmor gsArmor) { + super(gsArmor); + widget = uiBinder.createAndBindUi(this); + } + + @Override + public void addItem(final FolderItemDescriptor item, final ClickHandler clickHandler, + final DoubleClickHandler doubleClickHandler) { + // In this viewer we don't use the clickHandler from the presenter + flow.add(createThumb(item.getText(), item.getIcon(), item.getTooltip(), "", item.getActionCollection(), + doubleClickHandler)); + } + + @Override + public void clear() { + flow.clear(); + super.clear(); + } + + public BasicThumb createThumb(final String text, final Object icon, final String tooltip, + final String tooltipTitle, final GuiActionDescCollection menuitems, + final DoubleClickHandler doubleClickHandler) { + final BasicThumb thumb = new BasicThumb(icon, ICONSIZE, text, ICONLABELMAXSIZE, false); + final MenuDescriptor menu = new MenuDescriptor(); + menu.setStandalone(true); + menu.putValue(AbstractGxtMenuGui.MENU_POSITION, AbstractGxtMenuGui.MenuPosition.bl); + for (final GuiActionDescrip item : menuitems) { + item.setParent(menu); + } + final ClickHandler clickHand = new ClickHandler() { + @Override + public void onClick(final ClickEvent event) { + menu.show(thumb); + } + }; + thumb.addClickHandler(clickHand); + thumb.addDoubleClickHandler(doubleClickHandler); + gsArmor.getSubheaderToolbar().add(menu); + gsArmor.getSubheaderToolbar().addAll(menuitems); + thumb.setTooltip(tooltipTitle, tooltip); + thumb.setLabelVisible(true); + return thumb; + } + + @Override + public void setContainer(final StateContainerDTO state) { + super.setContainer(state); + gsArmor.getDocContainer().add(new HTML("<b>Note:</b> This GUI is provisional<br/>")); + } + +} Property changes on: trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsFlowPanel.java ___________________________________________________________________ Name: svn:mime-type + text/plain Copied: trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsFlowPanel.ui.xml (from rev 1315, trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPanel.ui.xml) =================================================================== --- trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsFlowPanel.ui.xml (rev 0) +++ trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsFlowPanel.ui.xml 2011-04-25 17:07:00 UTC (rev 1318) @@ -0,0 +1,8 @@ +<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> +<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" + xmlns:g='urn:import:com.google.gwt.user.client.ui'> + <ui:style> + </ui:style> + <g:FlowPanel ui:field="flow" width="100%" height="100%"> + </g:FlowPanel> +</ui:UiBinder> \ No newline at end of file Property changes on: trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsFlowPanel.ui.xml ___________________________________________________________________ Name: svn:mime-type + text/plain Added: trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsTablePanel.java =================================================================== --- trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsTablePanel.java (rev 0) +++ trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsTablePanel.java 2011-04-25 17:07:00 UTC (rev 1318) @@ -0,0 +1,107 @@ +package cc.kune.docs.client.viewers; + +import cc.kune.common.client.actions.ui.ActionSimplePanel; +import cc.kune.common.client.actions.ui.bind.GuiProvider; +import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip; +import cc.kune.common.client.actions.ui.descrip.MenuDescriptor; +import cc.kune.core.client.resources.CoreResources; +import cc.kune.core.shared.dto.StateContainerDTO; +import cc.kune.core.shared.i18n.I18nTranslationService; +import cc.kune.gspace.client.GSpaceArmor; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.dom.client.DoubleClickHandler; +import com.google.gwt.event.dom.client.MouseOutEvent; +import com.google.gwt.event.dom.client.MouseOutHandler; +import com.google.gwt.event.dom.client.MouseOverEvent; +import com.google.gwt.event.dom.client.MouseOverHandler; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.FlexTable; +import com.google.gwt.user.client.ui.Widget; +import com.google.inject.Inject; + +public class FolderViewerAsTablePanel extends AbstractFolderViewerPanel { + + interface FolderViewerAsTablePanelUiBinder extends UiBinder<Widget, FolderViewerAsTablePanel> { + } + + private static FolderViewerAsTablePanelUiBinder uiBinder = GWT.create(FolderViewerAsTablePanelUiBinder.class); + + @UiField + FlexTable flex; + + private final GuiProvider guiProvider; + private final I18nTranslationService i18n; + private final CoreResources res; + protected FolderItemWidget selected; + + @Inject + public FolderViewerAsTablePanel(final GSpaceArmor gsArmor, final I18nTranslationService i18n, + final GuiProvider guiProvider, final CoreResources res) { + super(gsArmor); + this.i18n = i18n; + this.guiProvider = guiProvider; + this.res = res; + widget = uiBinder.createAndBindUi(this); + } + + @Override + public void addItem(final FolderItemDescriptor item, final ClickHandler clickHandler, + final DoubleClickHandler doubleClickHandler) { + final int rowCount = flex.getRowCount(); + final FolderItemWidget itemWidget = new FolderItemWidget((ImageResource) item.getIcon(), item.getText()); + final ActionSimplePanel toolbar = new ActionSimplePanel(guiProvider); + itemWidget.setMenu(toolbar); + // Tooltip.to(itemWidget, item.getTooltip()); + final MenuDescriptor menu = new MenuDescriptor(i18n.t("Actions")); + menu.withIcon(res.arrowdown()).withStyles("k-def-docbtn, k-btn, k-button"); + menu.setStandalone(false); + menu.setVisible(false); + toolbar.add(menu); + for (final GuiActionDescrip menuItem : item.getActionCollection()) { + menuItem.setParent(menu); + toolbar.add(menuItem); + } + itemWidget.getRowClick().addClickHandler(new ClickHandler() { + @Override + public void onClick(final ClickEvent event) { + if (selected != null) { + selected.setSelect(false); + } + itemWidget.setSelect(true); + selected = itemWidget; + } + }); + itemWidget.getRowDoubleClick().addDoubleClickHandler(doubleClickHandler); + itemWidget.getRowMouse().addMouseOutHandler(new MouseOutHandler() { + @Override + public void onMouseOut(final MouseOutEvent event) { + menu.setVisible(false); + // itemWidget.setSelect(false); + // menu.hide(); + } + }); + itemWidget.getRowMouse().addMouseOverHandler(new MouseOverHandler() { + @Override + public void onMouseOver(final MouseOverEvent event) { + menu.setVisible(true); + } + }); + flex.setWidget(rowCount + 1, 0, itemWidget); + } + + @Override + public void clear() { + flex.clear(); + super.clear(); + } + + @Override + public void setContainer(final StateContainerDTO state) { + super.setContainer(state); + } +} Property changes on: trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsTablePanel.java ___________________________________________________________________ Name: svn:mime-type + text/plain Added: trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsTablePanel.ui.xml =================================================================== --- trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsTablePanel.ui.xml (rev 0) +++ trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsTablePanel.ui.xml 2011-04-25 17:07:00 UTC (rev 1318) @@ -0,0 +1,8 @@ +<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> +<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" + xmlns:g="urn:import:com.google.gwt.user.client.ui"> + <ui:style> + </ui:style> + <g:FlexTable ui:field="flex" width="100%" height="100%"> + </g:FlexTable> +</ui:UiBinder> \ No newline at end of file Property changes on: trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerAsTablePanel.ui.xml ___________________________________________________________________ Name: svn:mime-type + text/plain Deleted: 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 17:25:02 UTC (rev 1317) +++ trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPanel.java 2011-04-25 17:07:00 UTC (rev 1318) @@ -1,115 +0,0 @@ -package cc.kune.docs.client.viewers; - -import cc.kune.common.client.actions.gxtui.AbstractGxtMenuGui; -import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection; -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; - -import com.google.gwt.core.client.GWT; -import com.google.gwt.event.dom.client.ClickEvent; -import com.google.gwt.event.dom.client.ClickHandler; -import com.google.gwt.event.dom.client.DoubleClickHandler; -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; -import com.gwtplatform.mvp.client.ViewImpl; - -public class FolderViewerPanel extends ViewImpl implements FolderViewerView { - interface FolderViewerPanelUiBinder extends UiBinder<Widget, FolderViewerPanel> { - } - private static FolderViewerPanelUiBinder uiBinder = GWT.create(FolderViewerPanelUiBinder.class); - - @UiField - FlowPanel flow; - - private final GSpaceArmor gsArmor; - - int ICONLABELMAXSIZE = 20; - int ICONSIZE = 100; - private final Widget widget; - - @Inject - public FolderViewerPanel(final GSpaceArmor wsArmor) { - this.gsArmor = wsArmor; - widget = uiBinder.createAndBindUi(this); - } - - @Override - public void addItem(final FolderItemDescriptor item, final DoubleClickHandler doubleClickHandler) { - flow.add(createThumb(item.getText(), item.getIcon(), item.getTooltip(), "", item.getActionCollection(), - doubleClickHandler)); - } - - @Override - public Widget asWidget() { - return widget; - } - - @Override - public void attach() { - final ForIsWidget docContainer = gsArmor.getDocContainer(); - docContainer.add(widget); - } - - @Override - 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, - final String tooltipTitle, final GuiActionDescCollection menuitems, - final DoubleClickHandler doubleClickHandler) { - final BasicThumb thumb = new BasicThumb(icon, ICONSIZE, text, ICONLABELMAXSIZE, false); - final MenuDescriptor menu = new MenuDescriptor(); - menu.setStandalone(true); - menu.putValue(AbstractGxtMenuGui.MENU_POSITION, AbstractGxtMenuGui.MenuPosition.bl); - for (final GuiActionDescrip item : menuitems) { - item.setParent(menu); - } - final ClickHandler clickHand = new ClickHandler() { - @Override - public void onClick(final ClickEvent event) { - menu.show(thumb); - } - }; - - thumb.addClickHandler(clickHand); - thumb.addDoubleClickHandler(doubleClickHandler); - gsArmor.getSubheaderToolbar().add(menu); - gsArmor.getSubheaderToolbar().addAll(menuitems); - thumb.setTooltip(tooltipTitle, tooltip); - thumb.setLabelVisible(true); - return thumb; - } - - @Override - public void detach() { - clear(); - } - - @Override - public void setActions(final GuiActionDescCollection actions) { - gsArmor.getSubheaderToolbar().clear(); - gsArmor.getSubheaderToolbar().addAll(actions); - } - - @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())); - } - -} Deleted: trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPanel.ui.xml =================================================================== --- trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPanel.ui.xml 2011-04-18 17:25:02 UTC (rev 1317) +++ trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPanel.ui.xml 2011-04-25 17:07:00 UTC (rev 1318) @@ -1,20 +0,0 @@ -<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> -<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" - xmlns:g='urn:import:com.google.gwt.user.client.ui' xmlns:f='urn:import:org.waveprotocol.box.webclient.widget.frame' - xmlns:w='urn:import:org.waveprotocol.wave.client.widget.common'> - <ui:style> - .wavePanel { - margin: 0 0 0 0; - } - - .waveHolder { - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - } - </ui:style> - <g:FlowPanel ui:field="flow" width="100%" height="100%"> - </g:FlowPanel> -</ui:UiBinder> \ No newline at end of file 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 17:25:02 UTC (rev 1317) +++ trunk/src/main/java/cc/kune/docs/client/viewers/FolderViewerPresenter.java 2011-04-25 17:07:00 UTC (rev 1318) @@ -28,6 +28,8 @@ import cc.kune.gspace.client.tool.ContentViewer; import cc.kune.gspace.client.tool.ContentViewerSelector; +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.shared.EventBus; @@ -49,7 +51,7 @@ public interface FolderViewerView extends View { - void addItem(FolderItemDescriptor item, DoubleClickHandler handler); + void addItem(FolderItemDescriptor item, ClickHandler clickHandler, DoubleClickHandler doubleClickHandler); void attach(); @@ -103,8 +105,13 @@ // Don't show NotifyUser.info("Deleted, don't show"); } else { - getView().addItem(item, new DoubleClickHandler() { + getView().addItem(item, new ClickHandler() { @Override + public void onClick(final ClickEvent event) { + stateManager.gotoStateToken(stateToken); + } + }, new DoubleClickHandler() { + @Override public void onDoubleClick(final DoubleClickEvent event) { stateManager.gotoStateToken(stateToken); } @@ -121,15 +128,17 @@ if (container.getContents().size() + container.getChilds().size() == 0) { // FIXME } else { - for (final ContentSimpleDTO content : container.getContents()) { - addItem(content.getTitle(), content.getTypeId(), content.getMimeType(), content.getStatus(), - content.getStateToken(), content.getStateToken().copy().clearDocument(), content.getRights()); - } + // Folders for (final ContainerSimpleDTO childFolder : container.getChilds()) { addItem(childFolder.getName(), childFolder.getTypeId(), null, ContentStatus.publishedOnline, childFolder.getStateToken(), childFolder.getStateToken().copy().setFolder(childFolder.getParentFolderId()), containerRights); } + // Other contents (docs, etc) + for (final ContentSimpleDTO content : container.getContents()) { + addItem(content.getTitle(), content.getTypeId(), content.getMimeType(), content.getStatus(), + content.getStateToken(), content.getStateToken().copy().clearDocument(), content.getRights()); + } } } @@ -155,7 +164,7 @@ // Used for previews return null; } else { - return null; // i18n.t("Double click to open"); + return i18n.t("Double click to open"); } }