r982 - in trunk/src/main/java/org/ourproject/kune: app/public/css gallery/client gallery/client/cnt platf/client/dto platf/client/services platf/client/state platf/client/ui platf/server platf/server/rpc platf/server/state workspace/client/cnt workspace/client/socialnet
Author: vjrj Date: 2008-12-05 02:14:07 +0100 (Fri, 05 Dec 2008) New Revision: 982 Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/BasicThumb.java Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPresenter.java trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentView.java trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPanel.java trunk/src/main/java/org/ourproject/kune/platf/client/dto/BasicMimeTypeDTO.java trunk/src/main/java/org/ourproject/kune/platf/client/dto/InitDataDTO.java trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateContainerDTO.java trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java trunk/src/main/java/org/ourproject/kune/platf/server/InitData.java trunk/src/main/java/org/ourproject/kune/platf/server/rpc/SiteRPC.java trunk/src/main/java/org/ourproject/kune/platf/server/state/StateContainer.java trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryView.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java Log: Complete - task Gallery thumbs Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css =================================================================== --- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-12-05 01:14:07 UTC (rev 982) @@ -41,4 +41,4 @@ padding: 1px 0px 1px 1px; text-decoration:none; } -*/.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-bsp-buddie{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-bsp-buddie td{padding:2px 3px;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;margin-left:5px;cursor:pointer;}.k-tsp-tag{float:right;margin-right:5px;cursor:pointer;color:#00F;}.k-tsp-cloud{vertical-align:bottom;}.k-options-icon{background-image:url(img/emblem-system.gif)!important;}.x-toolbar-body table{width:100%;} \ No newline at end of file +*/.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-basic-thumb{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-basic-thumb td{padding:2px 3px;border:none;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;margin-left:5px;cursor:pointer;}.k-tsp-tag{float:right;margin-right:5px;cursor:pointer;color:#00F;}.k-tsp-cloud{vertical-align:bottom;}.k-options-icon{background-image:url(img/emblem-system.gif)!important;}.x-toolbar-body table{width:100%;} \ No newline at end of file Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css =================================================================== --- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-12-05 01:14:07 UTC (rev 982) @@ -778,15 +778,16 @@ margin-left: 6px; } -.k-bsp-buddie { +.k-basic-thumb { background: #FAFAFA none repeat scroll 0% 50%; border: 1px solid #EBEBEB; padding: 3px; margin: 3px; } -.k-bsp-buddie td { +.k-basic-thumb td { padding: 2px 3px 2px 3px; + border: none; } .k-text-gray { Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2008-12-05 01:14:07 UTC (rev 982) @@ -108,9 +108,9 @@ public GalleryFolderContent create() { final GalleryFolderContentPresenter presenter = new GalleryFolderContentPresenter( $(StateManager.class), $(Session.class), $(ActionContentToolbar.class), - $(ContentActionRegistry.class), $(I18nTranslationService.class)); + $(ContentActionRegistry.class), $(I18nTranslationService.class), $$(FileDownloadUtils.class)); final GalleryFolderContentView view = new GalleryFolderContentPanel($(WorkspaceSkeleton.class), - $(I18nTranslationService.class)); + $(I18nTranslationService.class), $(StateManager.class)); presenter.init(view); return presenter; } Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java 2008-12-05 01:14:07 UTC (rev 982) @@ -19,15 +19,54 @@ */ package org.ourproject.kune.gallery.client.cnt; +import org.ourproject.kune.platf.client.dto.StateToken; import org.ourproject.kune.platf.client.services.I18nTranslationService; +import org.ourproject.kune.platf.client.state.StateManager; +import org.ourproject.kune.platf.client.ui.BasicThumb; import org.ourproject.kune.workspace.client.cnt.FoldableContentPanel; -import org.ourproject.kune.workspace.client.site.Site; import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; +import com.google.gwt.user.client.Command; +import com.google.gwt.user.client.DeferredCommand; +import com.google.gwt.user.client.ui.ClickListener; +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.Widget; + public class GalleryFolderContentPanel extends FoldableContentPanel implements GalleryFolderContentView { - public GalleryFolderContentPanel(WorkspaceSkeleton ws, I18nTranslationService i18n) { + private static final int TEXT_MAX_LENGHT = 15; + private FlowPanel flowPanel; + private final StateManager stateManager; + + public GalleryFolderContentPanel(WorkspaceSkeleton ws, I18nTranslationService i18n, StateManager stateManager) { super(ws, i18n); - super.setLabel("Folder properties, translations ..." + Site.IN_DEVELOPMENT); + this.stateManager = stateManager; } + + public void addThumb(final StateToken token, final String title, final String imgUrl) { + DeferredCommand.addCommand(new Command() { + public void execute() { + BasicThumb thumb = new BasicThumb(imgUrl, 85, title, TEXT_MAX_LENGHT, true, new ClickListener() { + public void onClick(Widget sender) { + stateManager.gotoToken(token); + } + }); + thumb.setHeight("100"); + thumb.setWidth("100"); + if (title.length() > TEXT_MAX_LENGHT) { + thumb.setTooltip(title); + } + flowPanel.add(thumb); + } + }); + } + + public void setThumbPanel() { + if (flowPanel == null) { + flowPanel = new FlowPanel(); + } else { + flowPanel.clear(); + } + super.setContent(flowPanel); + } } Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPresenter.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPresenter.java 2008-12-05 01:14:07 UTC (rev 982) @@ -23,22 +23,30 @@ import org.ourproject.kune.platf.client.actions.ActionRegistry; import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar; import org.ourproject.kune.platf.client.dto.ContainerDTO; +import org.ourproject.kune.platf.client.dto.ContentSimpleDTO; import org.ourproject.kune.platf.client.dto.StateContainerDTO; import org.ourproject.kune.platf.client.dto.StateToken; import org.ourproject.kune.platf.client.services.I18nTranslationService; import org.ourproject.kune.platf.client.state.Session; import org.ourproject.kune.platf.client.state.StateManager; +import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils; +import org.ourproject.kune.platf.client.ui.download.ImageSize; import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter; +import com.calclab.suco.client.ioc.Provider; + public class GalleryFolderContentPresenter extends FoldableContentPresenter implements GalleryFolderContent { private GalleryFolderContentView view; private final I18nTranslationService i18n; + private final Provider<FileDownloadUtils> downloadUtils; public GalleryFolderContentPresenter(StateManager stateManager, Session session, ActionContentToolbar toolbar, - final ActionRegistry<StateToken> actionRegistry, I18nTranslationService i18n) { + final ActionRegistry<StateToken> actionRegistry, I18nTranslationService i18n, + Provider<FileDownloadUtils> downloadUtils) { super(GalleryClientTool.NAME, stateManager, session, toolbar, actionRegistry); this.i18n = i18n; + this.downloadUtils = downloadUtils; } public void init(final GalleryFolderContentView view) { @@ -55,6 +63,15 @@ } else { view.setInfo(""); } + } else if (state.isType(GalleryClientTool.TYPE_ALBUM) && (state.getContainer().getContents().size() > 0)) { + view.setThumbPanel(); + for (ContentSimpleDTO content : state.getContainer().getContents()) { + if (content.getMimeType().isImage()) { + StateToken token = content.getStateToken(); + String imgUrl = downloadUtils.get().getImageResizedUrl(token, ImageSize.thumb); + view.addThumb(token, content.getTitle(), imgUrl); + } + } } else { view.setInfo(""); } Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentView.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentView.java 2008-12-05 01:14:07 UTC (rev 982) @@ -19,7 +19,12 @@ */ package org.ourproject.kune.gallery.client.cnt; +import org.ourproject.kune.platf.client.dto.StateToken; import org.ourproject.kune.workspace.client.cnt.AbstractContentView; public interface GalleryFolderContentView extends AbstractContentView { + + void addThumb(StateToken token, String title, String imgUrl); + + void setThumbPanel(); } Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPanel.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPanel.java 2008-12-05 01:14:07 UTC (rev 982) @@ -24,6 +24,7 @@ import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; public class GalleryViewerPanel extends FoldableContentPanel implements GalleryViewerView { + public GalleryViewerPanel(final WorkspaceSkeleton ws, I18nTranslationService i18n) { super(ws, i18n); } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/BasicMimeTypeDTO.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/dto/BasicMimeTypeDTO.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/BasicMimeTypeDTO.java 2008-12-05 01:14:07 UTC (rev 982) @@ -52,6 +52,10 @@ return type; } + public boolean isImage() { + return getType().equals("image"); + } + public void setSubtype(final String subtype) { this.subtype = subtype; } @@ -60,6 +64,7 @@ this.type = type; } + @Override public String toString() { return subtype == null ? type : type + "/" + subtype; } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/InitDataDTO.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/dto/InitDataDTO.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/InitDataDTO.java 2008-12-05 01:14:07 UTC (rev 982) @@ -38,6 +38,10 @@ private String siteLogoUrl; private String galleryPermittedExtensions; private String maxFileSizeInMb; + private int imgResizewidth; + private int imgThumbsize; + private int imgCropsize; + private int imgIconsize; private ArrayList<ToolSimpleDTO> userTools; private ArrayList<ToolSimpleDTO> groupTools; @@ -69,6 +73,22 @@ return groupTools; } + public int getImgCropsize() { + return imgCropsize; + } + + public int getImgIconsize() { + return imgIconsize; + } + + public int getImgResizewidth() { + return imgResizewidth; + } + + public int getImgThumbsize() { + return imgThumbsize; + } + public ArrayList<I18nLanguageSimpleDTO> getLanguages() { return languages; } @@ -137,6 +157,22 @@ this.groupTools = groupTools; } + public void setImgCropsize(int imgCropsize) { + this.imgCropsize = imgCropsize; + } + + public void setImgIconsize(int imgIconsize) { + this.imgIconsize = imgIconsize; + } + + public void setImgResizewidth(int imgResizewidth) { + this.imgResizewidth = imgResizewidth; + } + + public void setImgThumbsize(int imgThumbsize) { + this.imgThumbsize = imgThumbsize; + } + public void setLanguages(final ArrayList<I18nLanguageSimpleDTO> languages) { this.languages = languages; } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateContainerDTO.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateContainerDTO.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateContainerDTO.java 2008-12-05 01:14:07 UTC (rev 982) @@ -72,6 +72,10 @@ return typeId; } + public boolean isType(String type) { + return getTypeId().equals(type); + } + public void setAccessLists(AccessListsDTO accessLists) { this.accessLists = accessLists; } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java 2008-12-05 01:14:07 UTC (rev 982) @@ -373,7 +373,8 @@ final BuddiesSummaryPresenter presenter = new BuddiesSummaryPresenter($(StateManager.class), $(Session.class), $$(UserServiceAsync.class), $(UserActionRegistry.class), $(I18nTranslationService.class), $$(ChatEngine.class), $(ActionBuddiesSummaryToolbar.class), - $$(FileDownloadUtils.class)); + $$(FileDownloadUtils.class), $(ImageUtils.class), $$(SocialNetworkServiceAsync.class), + $(GroupActionRegistry.class)); final BuddiesSummaryPanel panel = new BuddiesSummaryPanel(presenter, $(WorkspaceSkeleton.class), $(I18nTranslationService.class), $(ActionManager.class), $(ActionBuddiesSummaryToolbar.class).getView()); Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2008-12-05 01:14:07 UTC (rev 982) @@ -64,6 +64,14 @@ */ int SESSION_DURATION = 1000 * 60 * 60 * 24 * 14; + public int getImgCropsize(); + + public int getImgIconsize(); + + public int getImgResizewidth(); + + public int getImgThumbsize(); + void check(AsyncCallbackSimple<?> callback); StateContainerDTO getContainerState(); Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java 2008-12-05 01:14:07 UTC (rev 982) @@ -46,7 +46,7 @@ public class SessionDefault implements Session { private String userHash; - private InitDataDTO initData; + InitDataDTO initData; private UserInfoDTO currentUserInfo; private Object[][] languagesArray; private Object[][] countriesArray; @@ -119,6 +119,22 @@ return initData.getGroupTools(); } + public int getImgCropsize() { + return initData.getImgCropsize(); + } + + public int getImgIconsize() { + return initData.getImgIconsize(); + } + + public int getImgResizewidth() { + return initData.getImgResizewidth(); + } + + public int getImgThumbsize() { + return initData.getImgThumbsize(); + } + public List<I18nLanguageSimpleDTO> getLanguages() { return initData.getLanguages(); } Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/BasicThumb.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/BasicThumb.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/BasicThumb.java 2008-12-05 01:14:07 UTC (rev 982) @@ -0,0 +1,69 @@ +package org.ourproject.kune.platf.client.ui; + +import com.google.gwt.user.client.ui.ClickListener; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.Image; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.VerticalPanel; +import com.gwtext.client.util.Format; + +// http://en.wikipedia.org/wiki/Thumbnail + +public class BasicThumb extends Composite { + private static final int NOSIZE = -1; + private final Image thumbImg; + private final Label thumbLabel; + + public BasicThumb(String imageUrl, int imgSize, String text, int textMaxLenght, boolean crop, + ClickListener clickListener) { + VerticalPanel vp = new VerticalPanel(); + if (imgSize != NOSIZE) { + if (crop) { + thumbImg = new Image(imageUrl, 0, 0, imgSize, imgSize); + } else { + thumbImg = new Image(imageUrl); + thumbImg.setPixelSize(imgSize, imgSize); + } + } else { + thumbImg = new Image(imageUrl); + } + String title = textMaxLenght == NOSIZE ? text : Format.ellipsis(text, textMaxLenght); + thumbLabel = new Label(title); + vp.add(thumbImg); + vp.add(thumbLabel); + vp.addStyleName("k-basic-thumb"); + vp.addStyleName("kune-Margin-Small-trbl"); + vp.addStyleName("kune-pointer"); + vp.addStyleName("kune-floatleft"); + thumbLabel.addClickListener(clickListener); + vp.setCellHorizontalAlignment(thumbLabel, VerticalPanel.ALIGN_CENTER); + thumbImg.addClickListener(clickListener); + initWidget(vp); + } + + public BasicThumb(String imageUrl, String thumText, ClickListener clickListener) { + this(imageUrl, NOSIZE, thumText, NOSIZE, false, clickListener); + } + + public BasicThumb(String imageUrl, String text, int textMaxLenght, ClickListener clickListener) { + this(imageUrl, NOSIZE, text, textMaxLenght, false, clickListener); + } + + public void setText(String text) { + thumbLabel.setText(text); + } + + public void setThumbUrl(String url) { + thumbImg.setUrl(url); + } + + public void setTooltip(String tip) { + KuneUiUtils.setQuickTip(thumbImg, tip); + KuneUiUtils.setQuickTip(thumbLabel, tip); + } + + public void setTooltip(String tipTitle, String tip) { + KuneUiUtils.setQuickTip(thumbImg, tip, tipTitle); + KuneUiUtils.setQuickTip(thumbLabel, tip, tipTitle); + } +} Modified: trunk/src/main/java/org/ourproject/kune/platf/server/InitData.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/InitData.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/platf/server/InitData.java 2008-12-05 01:14:07 UTC (rev 982) @@ -43,6 +43,10 @@ private String siteLogoUrl; private String galleryPermittedExtensions; private String maxFileSizeInMb; + private int imgResizewidth; + private int imgThumbsize; + private int imgCropsize; + private int imgIconsize; private ArrayList<ToolSimple> userTools; private ArrayList<ToolSimple> groupTools; @@ -74,6 +78,22 @@ return groupTools; } + public int getImgCropsize() { + return imgCropsize; + } + + public int getImgIconsize() { + return imgIconsize; + } + + public int getImgResizewidth() { + return imgResizewidth; + } + + public int getImgThumbsize() { + return imgThumbsize; + } + public List<I18nLanguage> getLanguages() { return languages; } @@ -138,6 +158,22 @@ this.groupTools = groupTools; } + public void setImgCropsize(int imgCropsize) { + this.imgCropsize = imgCropsize; + } + + public void setImgIconsize(int imgIconsize) { + this.imgIconsize = imgIconsize; + } + + public void setImgResizewidth(int imgResizewidth) { + this.imgResizewidth = imgResizewidth; + } + + public void setImgThumbsize(int imgThumbsize) { + this.imgThumbsize = imgThumbsize; + } + public void setLanguages(final List<I18nLanguage> languages) { this.languages = languages; } Modified: trunk/src/main/java/org/ourproject/kune/platf/server/rpc/SiteRPC.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/rpc/SiteRPC.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/platf/server/rpc/SiteRPC.java 2008-12-05 01:14:07 UTC (rev 982) @@ -96,6 +96,10 @@ data.setMaxFileSizeInMb(kuneProperties.get(KuneProperties.UPLOAD_MAX_FILE_SIZE)); data.setUserTools(serverToolRegistry.getToolsForUsers()); data.setGroupTools(serverToolRegistry.getToolsForGroups()); + data.setImgResizewidth(new Integer(kuneProperties.get(KuneProperties.IMAGES_RESIZEWIDTH))); + data.setImgThumbsize(new Integer(kuneProperties.get(KuneProperties.IMAGES_THUMBSIZE))); + data.setImgCropsize(new Integer(kuneProperties.get(KuneProperties.IMAGES_CROPSIZE))); + data.setImgIconsize(new Integer(kuneProperties.get(KuneProperties.IMAGES_ICONSIZE))); return mapper.map(data, InitDataDTO.class); } Modified: trunk/src/main/java/org/ourproject/kune/platf/server/state/StateContainer.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/state/StateContainer.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/platf/server/state/StateContainer.java 2008-12-05 01:14:07 UTC (rev 982) @@ -77,6 +77,10 @@ return typeId; } + public boolean isType(String type) { + return getTypeId().equals(type); + } + public void setAccessLists(AccessLists accessLists) { this.accessLists = accessLists; } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java 2008-12-05 01:14:07 UTC (rev 982) @@ -21,8 +21,12 @@ public void setContent(final String content) { final HTML html = new HTML(content); - setDefStyle(html); - setWidget(html); + setContent(html); + } + + public void setContent(final Widget widget) { + setDefStyle(widget); + setWidget(widget); attach(); } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java 2008-12-05 01:14:07 UTC (rev 982) @@ -28,15 +28,14 @@ import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarView; import org.ourproject.kune.platf.client.dto.UserSimpleDTO; import org.ourproject.kune.platf.client.services.I18nTranslationService; +import org.ourproject.kune.platf.client.ui.BasicThumb; import org.ourproject.kune.workspace.client.skel.SimpleToolbar; import org.ourproject.kune.workspace.client.skel.SummaryPanel; import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; import com.calclab.suco.client.listener.Listener; import com.google.gwt.user.client.ui.ClickListener; -import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.FlowPanel; -import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; @@ -44,43 +43,6 @@ public class BuddiesSummaryPanel extends SummaryPanel implements BuddiesSummaryView { - public class BuddieWidget extends Composite { - private final Image avatar; - private final Label nick; - - public BuddieWidget(String nickName, String avatarUrl, ClickListener clickListener) { - // For Drag& drop, see gwt-ext-ux image: - // http://www.gwt-ext.com:8080/demo-ux/#imageDDSample - VerticalPanel vp = new VerticalPanel(); - avatar = new Image(); - if (avatarUrl.equals(NOAVATAR)) { - // Images.App.getInstance().personAvatarDef().applyTo(avatar); - avatar.setUrl("images/persons/person2-32.png"); - } else { - avatar.setUrl(avatarUrl); - } - avatar.setPixelSize(AVATARSIZE, AVATARSIZE); - nick = new Label(nickName); - vp.add(avatar); - vp.add(nick); - vp.addStyleName("k-bsp-buddie"); - vp.addStyleName("kune-Margin-Small-trbl"); - vp.addStyleName("kune-pointer"); - vp.addStyleName("kune-floatleft"); - nick.addClickListener(clickListener); - vp.setCellHorizontalAlignment(nick, VerticalPanel.ALIGN_CENTER); - avatar.addClickListener(clickListener); - initWidget(vp); - } - - public void setAvatarUrl(String url) { - avatar.setUrl(url); - } - - public void setNick(String nickName) { - nick.setText(nickName); - } - } private final MenuItemsContainer<UserSimpleDTO> menuItemsContainer; private final FlowPanel flowPanel; private final Label otherBuddiesLabel; @@ -112,7 +74,7 @@ } public void addBuddie(final UserSimpleDTO user, ActionItemCollection<UserSimpleDTO> actionCollection, - String avatarUrl) { + String avatarUrl, String tooltipTitle, String tooltip) { ClickListener listener = new ClickListener() { public void onClick(Widget sender) { Menu menu = menuItemsContainer.get(user.getShortName()); @@ -128,7 +90,10 @@ } }); - flowPanel.add(new BuddieWidget(user.getShortName(), avatarUrl, listener)); + BasicThumb thumb = new BasicThumb(avatarUrl.equals(NOAVATAR) ? "images/persons/person2-32.png" : avatarUrl, + AVATARSIZE, user.getShortName(), AVATARLABELMAXSIZE, false, listener); + thumb.setTooltip(tooltipTitle, tooltip); + flowPanel.add(thumb); } @Override Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java 2008-12-05 01:14:07 UTC (rev 982) @@ -28,6 +28,7 @@ import org.ourproject.kune.platf.client.actions.ActionToolbarButtonAndItemDescriptor; import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor; import org.ourproject.kune.platf.client.actions.ActionToolbarPosition; +import org.ourproject.kune.platf.client.actions.GroupActionRegistry; import org.ourproject.kune.platf.client.actions.UserActionRegistry; import org.ourproject.kune.platf.client.actions.toolbar.ActionBuddiesSummaryToolbar; import org.ourproject.kune.platf.client.dto.AccessRightsDTO; @@ -37,7 +38,9 @@ import org.ourproject.kune.platf.client.dto.UserBuddiesVisibilityDTO; import org.ourproject.kune.platf.client.dto.UserSimpleDTO; import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple; +import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync; import org.ourproject.kune.platf.client.services.I18nTranslationService; +import org.ourproject.kune.platf.client.services.ImageUtils; import org.ourproject.kune.platf.client.state.Session; import org.ourproject.kune.platf.client.state.StateManager; import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils; @@ -47,7 +50,7 @@ import com.calclab.suco.client.ioc.Provider; import com.calclab.suco.client.listener.Listener; -public class BuddiesSummaryPresenter implements BuddiesSummary { +public class BuddiesSummaryPresenter extends SocialNetworkPresenter implements BuddiesSummary { private BuddiesSummaryView view; private final StateManager stateManager; @@ -62,7 +65,10 @@ public BuddiesSummaryPresenter(StateManager stateManager, final Session session, Provider<UserServiceAsync> userServiceAsync, UserActionRegistry actionRegistry, I18nTranslationService i18n, final Provider<ChatEngine> chatEngineProvider, - final ActionBuddiesSummaryToolbar toolbar, Provider<FileDownloadUtils> fileDownUtilsProvider) { + final ActionBuddiesSummaryToolbar toolbar, Provider<FileDownloadUtils> fileDownUtilsProvider, + ImageUtils imageUtils, Provider<SocialNetworkServiceAsync> snServiceAsync, + GroupActionRegistry groupActionRegistry) { + super(i18n, stateManager, imageUtils, session, snServiceAsync, groupActionRegistry, fileDownUtilsProvider); this.stateManager = stateManager; this.session = session; this.userServiceAsync = userServiceAsync; @@ -101,8 +107,10 @@ for (UserSimpleDTO user : buddies) { String avatarUrl = user.hasLogo() ? fileDownUtilsProvider.get().getLogoImageUrl( user.getStateToken()) : BuddiesSummaryView.NOAVATAR; + String tooltip = super.createTooltipWithLogo(user.getShortName(), user.getStateToken(), + user.hasLogo(), true); view.addBuddie(user, actionRegistry.getCurrentActions(user, session.isLogged(), - new AccessRightsDTO(true, true, true), false), avatarUrl); + new AccessRightsDTO(true, true, true), false), avatarUrl, user.getName(), tooltip); } boolean hasLocalBuddies = buddies.size() > 0; int numExtBuddies = userBuddies.getOtherExternalBuddies(); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryView.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryView.java 2008-12-05 01:14:07 UTC (rev 982) @@ -26,8 +26,10 @@ String NOAVATAR = ""; int AVATARSIZE = 32; + int AVATARLABELMAXSIZE = 15; - void addBuddie(UserSimpleDTO user, ActionItemCollection<UserSimpleDTO> actionCollection, String avatarUrl); + void addBuddie(UserSimpleDTO user, ActionItemCollection<UserSimpleDTO> actionCollection, String avatarUrl, + String tooltipTitle, String tooltip); void clear(); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2008-12-04 14:34:33 UTC (rev 981) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2008-12-05 01:14:07 UTC (rev 982) @@ -31,6 +31,7 @@ import org.ourproject.kune.platf.client.dto.StateToken; import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple; import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync; +import org.ourproject.kune.platf.client.services.I18nTranslationService; import org.ourproject.kune.platf.client.services.ImageDescriptor; import org.ourproject.kune.platf.client.services.ImageUtils; import org.ourproject.kune.platf.client.state.Session; @@ -41,7 +42,7 @@ import org.ourproject.kune.platf.client.ui.gridmenu.CustomMenu; import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup; import org.ourproject.kune.platf.client.ui.gridmenu.GridItem; -import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; +import org.ourproject.kune.workspace.client.entityheader.EntityHeaderView; import org.ourproject.kune.workspace.client.site.Site; import com.calclab.suco.client.ioc.Provider; @@ -49,8 +50,6 @@ public class SocialNetworkPresenter { - private static final int ICOSIZE = 16; - private static final int THUMBSIZE = 50; protected MenuItem<GroupDTO> changeToCollabMenuItem; protected MenuItem<GroupDTO> removeMemberMenuItem; protected MenuItem<GroupDTO> changeToAdminMenuItem; @@ -59,7 +58,7 @@ protected MenuItem<GroupDTO> gotoMemberMenuItem; protected MenuItem<GroupDTO> gotoGroupMenuItem; protected MenuItem<GroupDTO> unJoinMenuItem; - private final I18nUITranslationService i18n; + private final I18nTranslationService i18n; private final StateManager stateManager; private final Provider<SocialNetworkServiceAsync> snServiceProvider; private final Session session; @@ -73,7 +72,7 @@ protected ActionToolbarButtonDescriptor<StateToken> participate; private final Provider<FileDownloadUtils> downloadProvider; - public SocialNetworkPresenter(final I18nUITranslationService i18n, final StateManager stateManager, + public SocialNetworkPresenter(final I18nTranslationService i18n, final StateManager stateManager, final ImageUtils imageUtils, final Session session, final Provider<SocialNetworkServiceAsync> snServiceProvider, GroupActionRegistry groupActionRegistry, final Provider<FileDownloadUtils> downloadProvider) { @@ -131,6 +130,13 @@ return gridItem; } + protected String createTooltipWithLogo(String shortName, StateToken token, boolean hasLogo, boolean isPersonal) { + return "<table><tr><td>" + + (hasLogo ? createLogoAvatar(token, hasLogo, isPersonal, EntityHeaderView.LOGO_ICON_DEFAULT_HEIGHT, 3) + : "") + "</td><td>" + + i18n.t(isPersonal ? "Nickname: [%s]" : "Group short name: [%s]", shortName) + "</td></tr></table>"; + } + protected boolean isMember(AccessRightsDTO rights) { boolean userIsAdmin = rights.isAdministrable(); final boolean userIsCollab = !userIsAdmin && rights.isEditable(); @@ -192,8 +198,10 @@ final CustomMenu<GroupDTO> menu = new CustomMenu<GroupDTO>(group); final String longName = group.getLongName(); boolean hasLogo = group.hasLogo(); - final String toolTip = createTooltipWithLogo(group, hasLogo); - final String imageHtml = createLogoAvatar(group.getStateToken(), hasLogo, group.isPersonal(), ICOSIZE, 0); + final String toolTip = createTooltipWithLogo(group.getShortName(), group.getStateToken(), hasLogo, + group.isPersonal()); + final String imageHtml = createLogoAvatar(group.getStateToken(), hasLogo, group.isPersonal(), + session.getImgIconsize(), 0); final GridItem<GroupDTO> gridItem = new GridItem<GroupDTO>(group, gridGroup, group.getShortName(), imageHtml, longName, longName, " ", longName, toolTip, menu); if (!group.isPersonal()) { @@ -212,14 +220,6 @@ return gridItem; } - private String createTooltipWithLogo(final GroupDTO group, boolean hasLogo) { - return "<table><tr><td>" - + (hasLogo ? createLogoAvatar(group.getStateToken(), hasLogo, group.isPersonal(), THUMBSIZE, 3) : "") - + "</td><td>" - + i18n.t(group.isPersonal() ? "Nickname: [%s]" : "Group short name: [%s]", group.getShortName()) - + "</td></tr></table>"; - } - private String createLogoAvatar(StateToken groupToken, boolean groupHasLogo, boolean isPersonal, int size, int hvspace) { if (groupHasLogo) {
participants (1)
-
vjrj