kune-commits
Threads by month
- ----- 2026 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
December 2008
- 3 participants
- 45 discussions
06 Dec '08
Author: shevek
Date: 2008-12-06 20:36:56 +0100 (Sat, 06 Dec 2008)
New Revision: 988
Modified:
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java
trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerTool.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java
trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPresenter.java
trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/AddRoomPanel.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/AbstractSearcherPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileJsonUploadManagerAbstract.java
trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java
trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerTool.java
Log:
Translation improved
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java 2008-12-05 21:15:09 UTC (rev 987)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java 2008-12-06 19:36:56 UTC (rev 988)
@@ -87,7 +87,7 @@
createRefreshCxtAction(parentMenuTitleCtx, containers);
createUploadAction(i18n.t("Upload file"), "images/nav/upload.png",
- i18n.t("Upload some files (images, PDFs, ...)"), null, containersNoRoot);
+ i18n.t("Upload files (images, PDFs...)"), null, containersNoRoot);
createSetAsDefContent(parentMenuTitle, contents);
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java 2008-12-05 21:15:09 UTC (rev 987)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java 2008-12-06 19:36:56 UTC (rev 988)
@@ -53,7 +53,7 @@
protected void setState(StateContainerDTO state) {
if (state.getTypeId().equals(BlogClientTool.TYPE_ROOT)) {
if (state.getRootContainer().getChilds().size() == 0) {
- view.setInfo(i18n.t("This group has no blogs."));
+ view.setInfo(i18n.t("This group has no blogs"));
} else {
view.setInfo("");
}
Modified: trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerTool.java 2008-12-05 21:15:09 UTC (rev 987)
+++ trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerTool.java 2008-12-06 19:36:56 UTC (rev 988)
@@ -100,7 +100,7 @@
content.setStatus(ContentStatus.publishedOnline);
contentManager.save(user, content,
- i18n.t("This is only a post sample. You can edit it, and rename this post and this blog"));
+ i18n.t("This is only a post sample. You can edit it, rename the post and this blog"));
return group;
}
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-05 21:15:09 UTC (rev 987)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java 2008-12-06 19:36:56 UTC (rev 988)
@@ -69,8 +69,8 @@
final String httpDomain = WindowUtils.getLocation().getHostName();
if (!chatDomain.equals(httpDomain)) {
Log.error("Your http domain (" + httpDomain + ") is different from the chat domain (" + chatDomain
- + "). This will produce problems with the chat functionality. "
- + "Check kune.properties on the server.");
+ + "). This will cause problems with the chat functionality. "
+ + "Please check kune.properties on the server.");
}
}
});
@@ -113,7 +113,7 @@
+ chatOptions.userOptions.getUserJid().getNode());
emiteUIProvider.get().joinRoom(roomURI);
} else {
- ws.showAlertMessage(i18n.t("Error"), i18n.t("To join a chatroom you need to be 'online'."));
+ ws.showAlertMessage(i18n.t("Error"), i18n.t("To join a chatroom you need to be 'online'"));
}
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPresenter.java 2008-12-05 21:15:09 UTC (rev 987)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPresenter.java 2008-12-06 19:36:56 UTC (rev 988)
@@ -59,7 +59,7 @@
view.setInfo(i18n.t("Select a chat room"));
}
} else {
- view.setInfo("History of room conversations ..." + Site.IN_DEVELOPMENT);
+ view.setInfo("History of room conversations..." + Site.IN_DEVELOPMENT);
}
super.setState(state);
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/AddRoomPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/AddRoomPanel.java 2008-12-05 21:15:09 UTC (rev 987)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/AddRoomPanel.java 2008-12-06 19:36:56 UTC (rev 988)
@@ -82,7 +82,7 @@
roomName.setAllowBlank(false);
roomName.setValidationEvent(false);
roomName.setRegex(TextUtils.UNIX_NAME);
- roomName.setRegexText(i18n.t("Can only contain characters, numbers, and dashes"));
+ roomName.setRegexText(i18n.t("The name must contain only characters, numbers and dashes"));
roomName.setId(ROOM_NAME_ID);
formPanel.add(roomName);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-12-05 21:15:09 UTC (rev 987)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-12-06 19:36:56 UTC (rev 988)
@@ -90,7 +90,7 @@
createSetAsDefContent(parentMenuTitle, contents);
createUploadAction(i18n.t("Upload file"), "images/nav/upload.png",
- i18n.t("Upload some files (images, PDFs, ...)"), null, containers);
+ i18n.t("Upload files (images, PDFs...)"), null, containers);
createDownloadActions(TYPE_UPLOADEDFILE);
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-05 21:15:09 UTC (rev 987)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-12-06 19:36:56 UTC (rev 988)
@@ -60,7 +60,7 @@
public void doSessionExpired() {
onSessionExpired.fire();
getWorkspaceSkeleton().showAlertMessage(i18n.t("Session expired"),
- i18n.t("Your session has expired. Please login again."));
+ i18n.t("Your session has expired. Please log in again."));
}
public WorkspaceSkeleton getWorkspaceSkeleton() {
@@ -77,7 +77,7 @@
throw caught;
} catch (final AccessViolationException e) {
logException(e);
- Site.error(i18n.t("You don't have rights to do that"));
+ Site.error(i18n.t("You do not have rights to perform that action"));
} catch (final SessionExpiredException e) {
logException(e);
doSessionExpired();
@@ -111,13 +111,13 @@
getWorkspaceSkeleton().showAlertMessage(
i18n.t("Warning"),
i18n.t("Sorry, you are the last admin of this group."
- + " Look for someone to substitute you appropriately as admin before unjoin this group."));
+ + " Look for someone to substitute you appropriately as admin before leaving this group."));
} catch (final AlreadyGroupMemberException e) {
logException(e);
Site.error(i18n.t("This group is already a group member"));
} catch (final AlreadyUserMemberException e) {
logException(e);
- Site.error(i18n.t("This user is already a member of this group"));
+ Site.error(i18n.t("This user is already a group member"));
} catch (final Throwable e) {
logException(e, true);
Site.error(i18n.t("Error performing operation"));
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/AbstractSearcherPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/AbstractSearcherPanel.java 2008-12-05 21:15:09 UTC (rev 987)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/AbstractSearcherPanel.java 2008-12-06 19:36:56 UTC (rev 988)
@@ -45,8 +45,8 @@
final PagingToolbar pag = new PagingToolbar(store);
pag.setPageSize(PAGINATION_SIZE);
pag.setDisplayInfo(true);
- pag.setDisplayMsg(i18n.tWithNT("Displaying results {0} - {1} of {2}", "Respect {} values in translations, "
- + "this will produce: 'Displaying results 1 - 25 of 95465' for instance"));
+ pag.setDisplayMsg(i18n.tWithNT("Displaying results {0} - {1} of {2}", "Respect {} values in translations. "
+ + "This will produce: 'Displaying results 1 - 25 of 95465' for instance"));
pag.setEmptyMsg(i18n.t("No results to display"));
pag.setAfterPageText(i18n.tWithNT("of {0}", "Used to show multiple results: '1 of 30'"));
pag.setBeforePageText(i18n.t("Page"));
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java 2008-12-05 21:15:09 UTC (rev 987)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java 2008-12-06 19:36:56 UTC (rev 988)
@@ -58,7 +58,7 @@
public void destroy() {
if (hasUploadingFiles()) {
dialog.stopUpload();
- Site.important(i18n.t("Upload canceled after sign out"));
+ Site.important(i18n.t("Upload cancelled after signing out"));
}
if (dialog != null) {
dialog.destroy();
@@ -135,7 +135,7 @@
public boolean onBeforeAdd(final UploadDialog source, final String filename) {
boolean mustAdd = presenter.checkFolderChange();
if (!mustAdd) {
- Site.important(i18n.t("Wait until current uploads finish to upload files in other location"));
+ Site.important(i18n.t("Please, wait until current uploads are finished to upload new files into another location"));
}
return mustAdd;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileJsonUploadManagerAbstract.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileJsonUploadManagerAbstract.java 2008-12-05 21:15:09 UTC (rev 987)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileJsonUploadManagerAbstract.java 2008-12-06 19:36:56 UTC (rev 988)
@@ -62,6 +62,6 @@
@Override
protected void onSuccess(HttpServletResponse response) throws IOException {
- doResponse(response, createJsonResponse(true, i18n.t("Success uploading")).toString());
+ doResponse(response, createJsonResponse(true, i18n.t("Uploading was successful")).toString());
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java 2008-12-05 21:15:09 UTC (rev 987)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java 2008-12-06 19:36:56 UTC (rev 988)
@@ -114,7 +114,7 @@
state.setEnabledTools(groupManager.findEnabledTools(group.getId()));
setSocialNetwork(state, userLogged, group);
state.setStateToken(group.getStateToken());
- state.setTitle("<h2>" + i18n.t("This user doesn't have a homepage") + "</h2>");
+ state.setTitle("<h2>" + i18n.t("This user does not have a homepage") + "</h2>");
return state;
}
Modified: trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerTool.java 2008-12-05 21:15:09 UTC (rev 987)
+++ trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerTool.java 2008-12-06 19:36:56 UTC (rev 988)
@@ -98,7 +98,7 @@
descriptor.setTypeId(TYPE_WIKIPAGE);
descriptor.setStatus(ContentStatus.publishedOnline);
contentManager.save(user, descriptor,
- i18n.t("This is only a wiki page sample. You can edit or rename it but also any other user."));
+ i18n.t("This is only a wiki page sample. You can edit or rename it, as any other user."));
return group;
}
1
0
r987 - in trunk/src/main/java/org/ourproject/kune/workspace/client: . cxt i18n signin sitebar/sitepublic summary
by Samer . 05 Dec '08
by Samer . 05 Dec '08
05 Dec '08
Author: shevek
Date: 2008-12-05 22:15:09 +0100 (Fri, 05 Dec 2008)
New Revision: 987
Modified:
trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/ContextPropEditorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/SitePublicSpaceLinkPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/summary/GroupSummaryPanel.java
Log:
Translation improved
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-12-05 19:10:49 UTC (rev 986)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-12-05 21:15:09 UTC (rev 987)
@@ -113,7 +113,7 @@
AccessRolDTO.Administrator, i18n.t("Submitted for publish"), parentMenuTitle,
ContentStatusDTO.publishedOnline);
final ActionToolbarMenuDescriptor<StateToken> setInTheDustBinStatus = createSetStatusAction(
- AccessRolDTO.Administrator, i18n.t("In the dustbin"), parentMenuTitle, ContentStatusDTO.inTheDustbin);
+ AccessRolDTO.Administrator, i18n.t("In the rubbish bin"), parentMenuTitle, ContentStatusDTO.inTheDustbin);
contentActionRegistry.addAction(setPublishStatus, contentsModerated);
contentActionRegistry.addAction(setEditionInProgressStatus, contentsModerated);
contentActionRegistry.addAction(setRejectStatus, contentsModerated);
@@ -144,7 +144,7 @@
delContainer.setTextDescription(i18n.t(text));
delContainer.setMustBeConfirmed(true);
delContainer.setConfirmationTitle(i18n.t("Please confirm"));
- delContainer.setConfirmationText(i18n.t("You will delete it and also all its contents. Are you sure?"));
+ delContainer.setConfirmationText(i18n.t("You will delete it with all its contents. Are you sure?"));
contextActionRegistry.addAction(delContainer, registerInTypes);
}
@@ -418,7 +418,7 @@
});
}
});
- setAsDefGroupContent.setTextDescription(i18n.t("Set this as the group default page"));
+ setAsDefGroupContent.setTextDescription(i18n.t("Set this as the default group page"));
setAsDefGroupContent.setIconUrl("images/group-home.png");
setAsDefGroupContent.setEnableCondition(new ActionEnableCondition<StateToken>() {
public boolean mustBeEnabled(final StateToken itemToken) {
@@ -496,7 +496,7 @@
protected ActionToolbarButtonAndItemDescriptor<StateToken> createUploadMediaAction(String... registerInTypes) {
ActionToolbarButtonAndItemDescriptor<StateToken> uploadMedia = createUploadAction(i18n.t("Upload media"),
- "images/nav/upload.png", i18n.t("Upload some media (images, videos)"),
+ "images/nav/upload.png", i18n.t("Upload some media (images, videos...)"),
session.getGalleryPermittedExtensions());
contextActionRegistry.addAction(uploadMedia, registerInTypes);
return uploadMedia;
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/ContextPropEditorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/ContextPropEditorPanel.java 2008-12-05 19:10:49 UTC (rev 986)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/ContextPropEditorPanel.java 2008-12-05 21:15:09 UTC (rev 987)
@@ -180,7 +180,7 @@
if (langComponent == null) {
final LanguageSelectorPanel view = (LanguageSelectorPanel) langSelectorProv.get().getView();
view.setWidth(FORMS_WIDTH);
- langComponent = new ContextPropertyPanel(i18n.t("What language is this in?"), null, true, LANG_PROP, view);
+ langComponent = new ContextPropertyPanel(i18n.t("In which language is this written?"), null, true, LANG_PROP, view);
view.addChangeListener(new ComboBoxListenerAdapter() {
@Override
public void onSelect(final ComboBox comboBox, final Record record, final int index) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorPresenter.java 2008-12-05 19:10:49 UTC (rev 986)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorPresenter.java 2008-12-05 21:15:09 UTC (rev 987)
@@ -55,7 +55,7 @@
if (session.isLogged()) {
view.show();
} else {
- Site.info(i18n.t("Sign in or register to help with translation"));
+ Site.info(i18n.t("Sign in or register to help with the translation"));
}
Site.hideProgress();
}
@@ -65,7 +65,7 @@
i18nService.setTranslation(session.getUserHash(), id, translation, new AsyncCallback<String>() {
public void onFailure(final Throwable caught) {
Site.hideProgress();
- Site.error(i18n.t("Server error saving translation"));
+ Site.error(i18n.t("Server error saving the translation"));
}
public void onSuccess(final String result) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java 2008-12-05 19:10:49 UTC (rev 986)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java 2008-12-05 21:15:09 UTC (rev 987)
@@ -224,7 +224,7 @@
createRadio(personalSpaceFieldSet, wantPersonalHomePage,
i18n.t("Yes, I want a homepage for publish my contents."), WANNAPERSONALHOMEPAGE_ID);
wantPersonalHomePage.setChecked(true);
- createRadio(personalSpaceFieldSet, noPersonalHomePage, i18n.t("No, I don't want. Maybe in the future."),
+ createRadio(personalSpaceFieldSet, noPersonalHomePage, i18n.t("No, I do not want. Maybe in the future i will."),
NOPERSONALHOMEPAGE_ID);
add(personalSpaceFieldSet);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java 2008-12-05 19:10:49 UTC (rev 986)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java 2008-12-05 21:15:09 UTC (rev 987)
@@ -86,7 +86,7 @@
noAccRegisterPanel.setBorder(false);
noAccRegisterPanel.setMargins(0, 20, 0, 0);
HorizontalPanel hp = new HorizontalPanel();
- final Label dontHaveAccountLabel = new Label(i18n.t("Don't have an account?"));
+ final Label dontHaveAccountLabel = new Label(i18n.t("Don't you have an account?"));
final Label registerLabel = new Label(i18n.t("Create one."));
registerLabel.ensureDebugId(CREATE_ONE);
registerLabel.addClickListener(new ClickListener() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/SitePublicSpaceLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/SitePublicSpaceLinkPanel.java 2008-12-05 19:10:49 UTC (rev 986)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/SitePublicSpaceLinkPanel.java 2008-12-05 21:15:09 UTC (rev 987)
@@ -60,7 +60,7 @@
gotoPublic();
}
});
- gotoPublic.setTitle(i18n.t("Leave the workspace and go to the public space of this group")
+ gotoPublic.setTitle(i18n.t("Leave the workspace and go to this group public space")
+ Site.IN_DEVELOPMENT);
gotoPublic.addStyleName("k-sitebar-labellink");
contentNoPublic.addStyleName("k-sitebar-labellink");
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/summary/GroupSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/summary/GroupSummaryPanel.java 2008-12-05 19:10:49 UTC (rev 986)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/summary/GroupSummaryPanel.java 2008-12-05 21:15:09 UTC (rev 987)
@@ -35,7 +35,7 @@
public GroupSummaryPanel(Images img, final GroupSummaryPresenter presenter, final I18nTranslationService i18n,
final WorkspaceSkeleton ws) {
super(img, i18n.t("Group Summary"), true);
- setHeaderTitle(i18n.t("Some summarized information about current project" + Site.IN_DEVELOPMENT));
+ setHeaderTitle(i18n.t("Summarized information about current project" + Site.IN_DEVELOPMENT));
vp = new VerticalPanel();
vp.setWidth("100%");
super.setContent(vp);
1
0
r986 - in trunk/src/main/java/org/ourproject/kune/workspace/client: editor licensechoose newgroup search socialnet tags
by Samer . 05 Dec '08
by Samer . 05 Dec '08
05 Dec '08
Author: shevek
Date: 2008-12-05 20:10:49 +0100 (Fri, 05 Dec 2008)
New Revision: 986
Modified:
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbar.java
trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.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/GroupMembersSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
Log:
Translation improved
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java 2008-12-05 17:53:45 UTC (rev 985)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java 2008-12-05 19:10:49 UTC (rev 986)
@@ -131,7 +131,7 @@
}
public void showSaveBeforeDialog() {
- MessageBox.confirm(i18n.t("Save confirmation"), i18n.t("Save before closing the editor?"),
+ MessageBox.confirm(i18n.t("Save confirmation"), i18n.t("Do you want to save before closing the editor?"),
new MessageBox.ConfirmCallback() {
public void execute(final String btnID) {
if (btnID.equals("yes")) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbar.java 2008-12-05 17:53:45 UTC (rev 985)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbar.java 2008-12-05 19:10:49 UTC (rev 986)
@@ -391,7 +391,7 @@
private MenuBar createFontSizesMenu() {
final MenuBar menu = new MenuBar();
final MenuBar submenu = new MenuBar(true);
- final String fontSizes[] = { i18n.t("Extra small"), i18n.t("Very small"), i18n.t("small"), i18n.t("Medium"),
+ final String fontSizes[] = { i18n.t("Extra small"), i18n.t("Very small"), i18n.t("Small"), i18n.t("Medium"),
i18n.t("Large"), i18n.t("Very large"), i18n.t("Extra large") };
KuneUiUtils.setQuickTip(menu, i18n.t("Font Size"));
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java 2008-12-05 17:53:45 UTC (rev 985)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java 2008-12-05 19:10:49 UTC (rev 986)
@@ -66,7 +66,7 @@
final VerticalPanel licenseTypesVP = new VerticalPanel();
ccRB = new RadioButton("ccOrNot", i18n.t("Creative Commons"));
- final RadioButton notCcRB = new RadioButton("ccOrNot", i18n.t("Others licenses"));
+ final RadioButton notCcRB = new RadioButton("ccOrNot", i18n.t("Other licenses"));
options = new DeckPanel();
ccIntro = new Label(
i18n.t("With a Creative Commons license, you keep your copyright but allow people to copy and distribute your work provided they give you credit — and only on the conditions you specify here. What do you want to do?"));
@@ -75,10 +75,10 @@
final VerticalPanel ccOptionsVP = new VerticalPanel();
final VerticalPanel nonCcOptionsVP = new VerticalPanel();
- final Label comercialLabel = new Label(i18n.t("Allow commercial uses of your work?"));
- commercialRB = new RadioButton("comercial", i18n.t("Yes"));
- nonCommercialRB = new RadioButton("comercial", i18n.t("No"));
- final Label allowModifLabel = new Label(i18n.t("Allow modifications of your work?"));
+ final Label comercialLabel = new Label(i18n.t("Do you want to allow commercial uses of your work?"));
+ commercialRB = new RadioButton("commercial", i18n.t("Yes"));
+ nonCommercialRB = new RadioButton("commercial", i18n.t("No"));
+ final Label allowModifLabel = new Label(i18n.t("Do you want to allow modifications of your work?"));
allowModifRB = new RadioButton("allowModif", i18n.t("Yes"));
allowModifShareAlikeRB = new RadioButton("allowModif", i18n.t("Yes, as long as others share alike"));
noModifRB = new RadioButton("allowModif", i18n.t("No"));
@@ -201,7 +201,7 @@
public void showNotCCoptions() {
options.showWidget(1);
- optionsBox.setTitle(i18n.t("Select one of these licenses:"));
+ optionsBox.setTitle(i18n.t("Please, select one of these licenses:"));
}
private void configureListeners(final LicenseChoosePresenter presenter) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2008-12-05 17:53:45 UTC (rev 985)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2008-12-05 19:10:49 UTC (rev 986)
@@ -270,12 +270,12 @@
tags.setName(TAGS_FIELD);
tags.setWidth(BIG_FIELD_WIDTH);
tags.setAllowBlank(false);
- final ToolTip fieldToolTip = new ToolTip(i18n.t("Some words related to this group (separated with spaces)."));
+ final ToolTip fieldToolTip = new ToolTip(i18n.t("Please, write some keywords for this group (separated with spaces)."));
fieldToolTip.applyTo(tags);
tags.setValidationDelay(1000);
form.add(tags);
- final FieldSet groupTypeFieldSet = new FieldSet(i18n.t("Type of group"));
+ final FieldSet groupTypeFieldSet = new FieldSet(i18n.t("Group type"));
groupTypeFieldSet.setStyle("margin-left: 105px");
groupTypeFieldSet.setWidth(BIG_FIELD_WIDTH);
@@ -284,23 +284,23 @@
projectRadio = new Radio();
projectRadio.setTabIndex(5);
createRadio(groupTypeFieldSet, projectRadio, "Project",
- "A project is a kind of group in which new members inclusion "
+ "A project is a kind of group in which new members joining "
+ "is moderated by the project administrators. "
+ "An administrator is the person who creates the project "
- + "and other people she/he choose in the future as administrator too.", PROJ_GROUP_TYPE_ID);
+ + "and other people she/he chooses to be administrator as well.", PROJ_GROUP_TYPE_ID);
projectRadio.setChecked(true);
orgRadio = new Radio();
orgRadio.setTabIndex(6);
- createRadio(groupTypeFieldSet, orgRadio, "Organization", "An organization is like a project, "
+ createRadio(groupTypeFieldSet, orgRadio, "Organization", "An organization works as a project, "
+ "but organizations must be a legal entity.", ORG_GROUP_TYPE_ID);
communityRadio = new Radio();
communityRadio.setTabIndex(7);
- createRadio(groupTypeFieldSet, communityRadio, "Community", "Communities are social group of persons "
- + "with shared interests and they are open to new members "
+ createRadio(groupTypeFieldSet, communityRadio, "Community", "Communities are social groups of persons "
+ + "with shared interests, which are open to new members "
+ "(for instance the environmental community or the LGBT community). "
- + "Normally they aren't a legal entity.", COMM_GROUP_TYPE_ID);
+ + "They rarely are a legal entity.", COMM_GROUP_TYPE_ID);
groupTypeFieldSet.setCollapsible(false);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java 2008-12-05 17:53:45 UTC (rev 985)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java 2008-12-05 19:10:49 UTC (rev 986)
@@ -104,7 +104,7 @@
dialog.expand();
dialog.center();
if (traybarButton == null) {
- traybarButton = new SiteBottomTrayButton("images/kune-search-ico-push.gif", i18n.t("Show/hide searcher"),
+ traybarButton = new SiteBottomTrayButton("images/kune-search-ico-push.gif", i18n.t("Show/hide search engine"),
dialog, ws);
}
}
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-05 17:53:45 UTC (rev 985)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java 2008-12-05 19:10:49 UTC (rev 986)
@@ -53,7 +53,7 @@
public BuddiesSummaryPanel(final BuddiesSummaryPresenter presenter, final WorkspaceSkeleton ws,
I18nTranslationService i18n, ActionManager actionManager, ActionToolbarView<UserSimpleDTO> actionToolbarView) {
- super(i18n.t("Buddies"), i18n.t("Buddies of this user"), ws);
+ super(i18n.t("Buddies"), i18n.t("This user buddies"), ws);
this.actionManager = actionManager;
menuItemsContainer = new MenuItemsContainer<UserSimpleDTO>();
this.i18n = i18n;
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-05 17:53:45 UTC (rev 985)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java 2008-12-05 19:10:49 UTC (rev 986)
@@ -171,7 +171,7 @@
}
});
addAsBuddie.setMustBeAuthenticated(true);
- addAsBuddie.setTextDescription(i18n.t("Add as buddie"));
+ addAsBuddie.setTextDescription(i18n.t("Add as a buddie"));
addAsBuddie.setIconUrl("images/add-green.png");
addAsBuddie.setAddCondition(new ActionAddCondition<UserSimpleDTO>() {
public boolean mustBeAdded(UserSimpleDTO item) {
@@ -192,7 +192,7 @@
}
});
go.setMustBeAuthenticated(false);
- go.setTextDescription(i18n.t("Visit this user homepage"));
+ go.setTextDescription(i18n.t("Visit this user's homepage"));
go.setIconUrl("images/group-home.gif");
actionRegistry.addAction(go);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2008-12-05 17:53:45 UTC (rev 985)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2008-12-05 19:10:49 UTC (rev 986)
@@ -106,7 +106,7 @@
public void confirmAddCollab(final String groupShortName, final String groupLongName) {
final String groupName = groupLongName + " (" + groupShortName + ")";
- MessageBox.confirm(i18n.t("Confirm addition of member"), i18n.t("Add [%s] as member?", groupName),
+ MessageBox.confirm(i18n.t("Confirm member joining"), i18n.t("Add [%s] as a member?", groupName),
new MessageBox.ConfirmCallback() {
public void execute(final String btnID) {
if (btnID.equals("yes")) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-12-05 17:53:45 UTC (rev 985)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-12-05 19:10:49 UTC (rev 986)
@@ -112,7 +112,7 @@
chatEngineProvider.get().chat(
XmppURI.jid(group.getShortName() + "@" + initData.getChatDomain()));
} else {
- Site.important(i18n.t("To start a chat you need to be 'online'."));
+ Site.important(i18n.t("To start a chat you need to be 'online'"));
}
}
}), true);
@@ -163,7 +163,7 @@
});
addMember.setIconUrl("images/add-green.gif");
addMember.setTextDescription(i18n.t("Add member"));
- addMember.setToolTip(i18n.t("Add a group or a person as member of this group"));
+ addMember.setToolTip(i18n.t("Add an user or a group as member of this group"));
addMember.setParentMenuTitle(i18n.t("Options"));
groupActionRegistry.addAction(addMember);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java 2008-12-05 17:53:45 UTC (rev 985)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java 2008-12-05 19:10:49 UTC (rev 986)
@@ -43,8 +43,8 @@
public ParticipationSummaryPanel(final ParticipationSummaryPresenter presenter, final I18nTranslationService i18n,
final WorkspaceSkeleton ws, ActionToolbarView<StateToken> actionToolbarView) {
- super(i18n.t("Participates in"), i18n.t("Groups in which participates"), ws);
- gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This user is not member of any group"), false, false,
+ super(i18n.t("Participates in"), i18n.t("Groups in which the user participates"), ws);
+ gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This user does not belong to any group"), false, false,
false, false, false);
Listener<String> go = new Listener<String>() {
public void onEvent(final String groupShortName) {
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-05 17:53:45 UTC (rev 985)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2008-12-05 19:10:49 UTC (rev 986)
@@ -162,7 +162,7 @@
Site.important(i18n.t("Sorry this is a closed group"));
break;
case moderated:
- Site.info(i18n.t("Requested. Waiting for admins decision"));
+ Site.info(i18n.t("Membership requested. Waiting for admins decision"));
break;
}
}
@@ -186,11 +186,11 @@
}
});
unJoin.setIconUrl("images/del.gif");
- unJoin.setTextDescription(i18n.t("Unjoin"));
- unJoin.setToolTip(i18n.t("Don't participate more in this group"));
+ unJoin.setTextDescription(i18n.t("Leave"));
+ unJoin.setToolTip(i18n.t("Do not participate anymore in this group"));
unJoin.setParentMenuTitle(i18n.t("Options"));
unJoin.setMustBeConfirmed(true);
- unJoin.setConfirmationTitle(i18n.t("Unjoin this group"));
+ unJoin.setConfirmationTitle(i18n.t("Leave this group"));
unJoin.setConfirmationText(i18n.t("Are you sure?"));
}
@@ -244,7 +244,7 @@
stateManager.gotoToken(groupDTO.getShortName());
}
});
- unJoinMenuItem = new MenuItem<GroupDTO>("images/del.gif", i18n.t("Don't participate more in this group"),
+ unJoinMenuItem = new MenuItem<GroupDTO>("images/del.gif", i18n.t("Do not participate anymore in this group"),
new Listener<GroupDTO>() {
public void onEvent(final GroupDTO groupDTO) {
removeMemberAction(groupDTO);
@@ -259,7 +259,7 @@
new AsyncCallbackSimple<SocialNetworkDataDTO>() {
public void onSuccess(final SocialNetworkDataDTO result) {
Site.hideProgress();
- Site.info(i18n.t("Type of member changed"));
+ Site.info(i18n.t("Member type changed"));
stateManager.setSocialNetwork(result);
}
});
@@ -297,7 +297,7 @@
new AsyncCallbackSimple<SocialNetworkDataDTO>() {
public void onSuccess(final SocialNetworkDataDTO result) {
Site.hideProgress();
- Site.info(i18n.t("Type of member changed"));
+ Site.info(i18n.t("Member type changed"));
stateManager.setSocialNetwork(result);
}
});
@@ -318,7 +318,7 @@
});
}
});
- denyJoinGroupMenuItem = new MenuItem<GroupDTO>("images/cancel.gif", i18n.t("Don't accept this member"),
+ denyJoinGroupMenuItem = new MenuItem<GroupDTO>("images/cancel.gif", i18n.t("Reject this member"),
new Listener<GroupDTO>() {
public void onEvent(final GroupDTO group) {
Site.showProgressProcessing();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java 2008-12-05 17:53:45 UTC (rev 985)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java 2008-12-05 19:10:49 UTC (rev 986)
@@ -58,9 +58,9 @@
final Label label = new Label(name);
// i18n pluralization
if (count > 1) {
- KuneUiUtils.setQuickTip(label, i18n.t("[%d] items with this tag", count));
+ KuneUiUtils.setQuickTip(label, i18n.t("There are [%d] items with this tag", count));
} else {
- KuneUiUtils.setQuickTip(label, i18n.t("[%d] item with this tag", count));
+ KuneUiUtils.setQuickTip(label, i18n.t("There are [%d] item with this tag", count));
}
label.addClickListener(new ClickListener() {
public void onClick(final Widget sender) {
1
0
Author: vjrj
Date: 2008-12-05 18:53:45 +0100 (Fri, 05 Dec 2008)
New Revision: 985
Added:
trunk/src/main/java/org/ourproject/kune/platf/server/utils/
trunk/src/main/java/org/ourproject/kune/platf/server/utils/StringW.java
trunk/src/main/java/org/ourproject/kune/platf/server/utils/XmlW.java
trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/orig.pdf
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/blogs/client/BlogClientModule.java
trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java
trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java
trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerView.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocFolderContentPanel.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocFolderContentPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerView.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.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/GalleryViewerPresenter.java
trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerView.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/BasicMimeTypeDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneUiUtils.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/BasicMimeType.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileDownloadManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/ImageUtilsDefault.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java
trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPresenter.java
trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java
trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbar.java
trunk/src/main/resources/kune.properties
trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/ImageUtilsDefaultTest.java
Log:
Preview of uploaded files (different than images).
Complete - task pdf to img for previews
Complete - task Text files preview
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-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-12-05 17:53:45 UTC (rev 985)
@@ -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-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
+*/.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%; */}.k-preview-msg{background:#FCA;}.k-preview-msg-lab{background:#FCA;padding:0 5px;}
\ 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-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-12-05 17:53:45 UTC (rev 985)
@@ -816,6 +816,15 @@
}
.x-toolbar-body table {
- width: 100%;
+ /* width: 100%; */
}
+.k-preview-msg
+ {
+ background: #FFCCAA;
+}
+.k-preview-msg-lab
+ {
+ background: #FFCCAA;
+ padding: 0 5px;
+}
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -108,7 +108,7 @@
public BlogFolderContent create() {
final BlogFolderContentPresenter presenter = new BlogFolderContentPresenter($(StateManager.class),
$(Session.class), $(ActionContentToolbar.class), $(ContentActionRegistry.class),
- $(I18nTranslationService.class));
+ $(I18nTranslationService.class), $$(FileDownloadUtils.class));
final BlogFolderContentView view = new BlogFolderContentPanel($(WorkspaceSkeleton.class),
$(I18nTranslationService.class));
presenter.init(view);
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -27,16 +27,20 @@
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.workspace.client.cnt.FoldableContentPresenter;
+import com.calclab.suco.client.ioc.Provider;
+
public class BlogFolderContentPresenter extends FoldableContentPresenter implements BlogFolderContent {
private BlogFolderContentView view;
private final I18nTranslationService i18n;
public BlogFolderContentPresenter(StateManager stateManager, Session session, ActionContentToolbar toolbar,
- final ActionRegistry<StateToken> actionRegistry, I18nTranslationService i18n) {
- super(BlogClientTool.NAME, stateManager, session, toolbar, actionRegistry);
+ final ActionRegistry<StateToken> actionRegistry, I18nTranslationService i18n,
+ Provider<FileDownloadUtils> downloadProvider) {
+ super(BlogClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider);
this.i18n = i18n;
}
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -22,62 +22,31 @@
import org.ourproject.kune.blogs.client.BlogClientTool;
import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
-import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO;
import org.ourproject.kune.platf.client.dto.StateContentDTO;
-import org.ourproject.kune.platf.client.dto.StateToken;
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 org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import com.calclab.suco.client.ioc.Provider;
public class BlogViewerPresenter extends FoldableContentPresenter implements BlogViewer {
- private BlogViewerView view;
- private final Provider<FileDownloadUtils> downloadProvider;
public BlogViewerPresenter(StateManager stateManager, Session session, I18nUITranslationService i18n,
ActionContentToolbar toolbar, ContentActionRegistry actionRegistry,
Provider<FileDownloadUtils> downloadProvider) {
- super(BlogClientTool.NAME, stateManager, session, toolbar, actionRegistry);
- this.downloadProvider = downloadProvider;
+ super(BlogClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider);
}
public void init(BlogViewerView view) {
super.init(view);
- this.view = view;
}
@Override
protected void setState(StateContentDTO state) {
super.setState(state);
- setContent(state, BlogClientTool.TYPE_UPLOADEDFILE);
+ super.setContent(state, BlogClientTool.TYPE_UPLOADEDFILE);
}
- private void setContent(StateContentDTO state, String uploadedfileType) {
- String typeId = state.getTypeId();
- String contentBody = state.getContent();
- StateToken token = state.getStateToken();
- BasicMimeTypeDTO mimeType = state.getMimeType();
- if (typeId.equals(uploadedfileType)) {
- if (mimeType != null) {
- FileDownloadUtils fileDownloadUtils = downloadProvider.get();
- if (mimeType.getType().equals("image")) {
- view.showImage(fileDownloadUtils.getImageUrl(token), fileDownloadUtils.getImageResizedUrl(token,
- ImageSize.sized));
- } else if (mimeType.toString().equals("text/plain") || mimeType.toString().equals("application/pdf")) {
- view.setContent(contentBody);
- } else {
- view.setContent("");
- }
- } else {
- view.setContent("");
- }
- } else {
- view.setContent(contentBody);
- }
- view.attach();
- }
}
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerView.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerView.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -23,8 +23,4 @@
public interface BlogViewerView extends AbstractContentView {
- void setContent(String content);
-
- void showImage(String imageUrl, String imageResizedUrl);
-
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -37,6 +37,7 @@
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.tool.ToolSelector;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
@@ -91,7 +92,7 @@
public ChatRoom create() {
final ChatRoomPresenter presenter = new ChatRoomPresenter($(StateManager.class), $(Session.class),
$(I18nUITranslationService.class), $(ActionContentToolbar.class),
- $(ContentActionRegistry.class));
+ $(ContentActionRegistry.class), $$(FileDownloadUtils.class));
final ChatRoomPanel panel = new ChatRoomPanel($(WorkspaceSkeleton.class),
$(I18nTranslationService.class));
presenter.init(panel);
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPresenter.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPresenter.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -26,18 +26,22 @@
import org.ourproject.kune.platf.client.dto.StateToken;
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.workspace.client.cnt.FoldableContentPresenter;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.site.Site;
+import com.calclab.suco.client.ioc.Provider;
+
public class ChatRoomPresenter extends FoldableContentPresenter implements ChatRoom {
private ChatRoomView view;
private final I18nUITranslationService i18n;
public ChatRoomPresenter(StateManager stateManager, Session session, I18nUITranslationService i18n,
- ActionContentToolbar toolbar, final ActionRegistry<StateToken> actionRegistry) {
- super(ChatClientTool.NAME, stateManager, session, toolbar, actionRegistry);
+ ActionContentToolbar toolbar, final ActionRegistry<StateToken> actionRegistry,
+ Provider<FileDownloadUtils> downloadProvider) {
+ super(ChatClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider);
this.i18n = i18n;
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -100,7 +100,7 @@
createEditAction(TYPE_DOCUMENT);
- createTranslateAction(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_UPLOADEDFILE);
+ createTranslateAction(TYPE_DOCUMENT, TYPE_FOLDER);
createDelContainerAction("Delete folder", parentMenuTitleCtx, containersNoRoot);
createDelContentAction(parentMenuTitle, i18n.t("Delete"), contents);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -76,8 +76,8 @@
$(Session.class), $(StateManager.class), $(DeferredCommandWrapper.class),
$$(ContentServiceAsync.class), $$(GroupServiceAsync.class), $$(FileUploader.class),
$(ContentActionRegistry.class), $(ContextActionRegistry.class), $$(FileDownloadUtils.class),
- $(EntityHeader.class), $$(TextEditor.class), $(KuneErrorHandler.class), $(DocumentViewer.class),
- $$(ContextPropEditor.class));
+ $(EntityHeader.class), $$(TextEditor.class), $(KuneErrorHandler.class),
+ $(DocumentViewer.class), $$(ContextPropEditor.class));
}
});
@@ -107,7 +107,8 @@
@Override
public DocFolderContent create() {
final DocFolderContentPresenter presenter = new DocFolderContentPresenter($(StateManager.class),
- $(Session.class), $(ActionContentToolbar.class), $(ContentActionRegistry.class));
+ $(Session.class), $(ActionContentToolbar.class), $(ContentActionRegistry.class),
+ $$(FileDownloadUtils.class));
final DocFolderContentView view = new DocFolderContentPanel($(WorkspaceSkeleton.class),
$(I18nTranslationService.class));
presenter.init(view);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -46,7 +46,7 @@
registerRateableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
registerRenamableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_UPLOADEDFILE);
registerTageableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
- registerTranslatableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_UPLOADEDFILE);
+ registerTranslatableTypes(TYPE_DOCUMENT, TYPE_FOLDER);
registerIcons();
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocFolderContentPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocFolderContentPanel.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocFolderContentPanel.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -21,13 +21,11 @@
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.workspace.client.cnt.FoldableContentPanel;
-import org.ourproject.kune.workspace.client.site.Site;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
public class DocFolderContentPanel extends FoldableContentPanel implements DocFolderContentView {
public DocFolderContentPanel(WorkspaceSkeleton ws, I18nTranslationService i18n) {
super(ws, i18n);
- super.setLabel("Folder properties, translations ..." + Site.IN_DEVELOPMENT);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocFolderContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocFolderContentPresenter.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocFolderContentPresenter.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -25,13 +25,16 @@
import org.ourproject.kune.platf.client.dto.StateToken;
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.workspace.client.cnt.FoldableContentPresenter;
+import com.calclab.suco.client.ioc.Provider;
+
public class DocFolderContentPresenter extends FoldableContentPresenter implements DocFolderContent {
public DocFolderContentPresenter(StateManager stateManager, Session session, ActionContentToolbar toolbar,
- final ActionRegistry<StateToken> actionRegistry) {
- super(DocumentClientTool.NAME, stateManager, session, toolbar, actionRegistry);
+ final ActionRegistry<StateToken> actionRegistry, Provider<FileDownloadUtils> downloadProvider) {
+ super(DocumentClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider);
}
public void init(final DocFolderContentView view) {
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -22,32 +22,25 @@
import org.ourproject.kune.docs.client.DocumentClientTool;
import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
-import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO;
import org.ourproject.kune.platf.client.dto.StateContentDTO;
-import org.ourproject.kune.platf.client.dto.StateToken;
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 org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import com.calclab.suco.client.ioc.Provider;
public class DocumentViewerPresenter extends FoldableContentPresenter implements DocumentViewer {
- private DocumentViewerView view;
- private final Provider<FileDownloadUtils> downloadProvider;
public DocumentViewerPresenter(StateManager stateManager, Session session, I18nUITranslationService i18n,
ActionContentToolbar toolbar, ContentActionRegistry actionRegistry,
Provider<FileDownloadUtils> downloadProvider) {
- super(DocumentClientTool.NAME, stateManager, session, toolbar, actionRegistry);
- this.downloadProvider = downloadProvider;
+ super(DocumentClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider);
}
public void init(DocumentViewerView view) {
super.init(view);
- this.view = view;
}
@Override
@@ -55,29 +48,4 @@
super.setState(state);
setContent(state, DocumentClientTool.TYPE_UPLOADEDFILE);
}
-
- private void setContent(StateContentDTO state, String uploadedfileType) {
- String typeId = state.getTypeId();
- String contentBody = state.getContent();
- StateToken token = state.getStateToken();
- BasicMimeTypeDTO mimeType = state.getMimeType();
- if (typeId.equals(uploadedfileType)) {
- if (mimeType != null) {
- FileDownloadUtils fileDownloadUtils = downloadProvider.get();
- if (mimeType.getType().equals("image")) {
- view.showImage(fileDownloadUtils.getImageUrl(token), fileDownloadUtils.getImageResizedUrl(token,
- ImageSize.sized));
- } else if (mimeType.toString().equals("text/plain") || mimeType.toString().equals("application/pdf")) {
- view.setContent(contentBody);
- } else {
- view.setContent("");
- }
- } else {
- view.setContent("");
- }
- } else {
- view.setContent(contentBody);
- }
- view.attach();
- }
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerView.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerView.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -22,9 +22,4 @@
import org.ourproject.kune.workspace.client.cnt.AbstractContentView;
public interface DocumentViewerView extends AbstractContentView {
-
- void setContent(String content);
-
- void showImage(String imageUrl, String imageResizedUrl);
-
}
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-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -108,9 +108,10 @@
public GalleryFolderContent create() {
final GalleryFolderContentPresenter presenter = new GalleryFolderContentPresenter(
$(StateManager.class), $(Session.class), $(ActionContentToolbar.class),
- $(ContentActionRegistry.class), $(I18nTranslationService.class), $$(FileDownloadUtils.class));
+ $(ContentActionRegistry.class), $(I18nTranslationService.class), $$(FileDownloadUtils.class),
+ $$(FileDownloadUtils.class));
final GalleryFolderContentView view = new GalleryFolderContentPanel($(WorkspaceSkeleton.class),
- $(I18nTranslationService.class), $(StateManager.class));
+ $(I18nTranslationService.class), $(StateManager.class), $(Session.class));
presenter.init(view);
return presenter;
}
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -45,7 +45,7 @@
registerRateableTypes(TYPE_UPLOADEDFILE);
registerRenamableTypes(TYPE_ALBUM, TYPE_UPLOADEDFILE);
registerTageableTypes(TYPE_UPLOADEDFILE);
- registerTranslatableTypes(TYPE_ALBUM, TYPE_UPLOADEDFILE);
+ // registerTranslatableTypes();
registerIcons();
}
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-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -21,6 +21,7 @@
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.BasicThumb;
import org.ourproject.kune.workspace.client.cnt.FoldableContentPanel;
@@ -37,20 +38,24 @@
private static final int TEXT_MAX_LENGHT = 15;
private FlowPanel flowPanel;
private final StateManager stateManager;
+ private final Session session;
- public GalleryFolderContentPanel(WorkspaceSkeleton ws, I18nTranslationService i18n, StateManager stateManager) {
+ public GalleryFolderContentPanel(WorkspaceSkeleton ws, I18nTranslationService i18n, StateManager stateManager,
+ Session session) {
super(ws, i18n);
this.stateManager = stateManager;
+ this.session = session;
}
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);
- }
- });
+ BasicThumb thumb = new BasicThumb(imgUrl, session.getImgCropsize(), 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) {
@@ -67,6 +72,6 @@
} else {
flowPanel.clear();
}
- super.setContent(flowPanel);
+ super.setWidgetAsContent(flowPanel, true);
}
}
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-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPresenter.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -43,8 +43,8 @@
public GalleryFolderContentPresenter(StateManager stateManager, Session session, ActionContentToolbar toolbar,
final ActionRegistry<StateToken> actionRegistry, I18nTranslationService i18n,
- Provider<FileDownloadUtils> downloadUtils) {
- super(GalleryClientTool.NAME, stateManager, session, toolbar, actionRegistry);
+ Provider<FileDownloadUtils> downloadUtils, Provider<FileDownloadUtils> downloadProvider) {
+ super(GalleryClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider);
this.i18n = i18n;
this.downloadUtils = downloadUtils;
}
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -22,32 +22,25 @@
import org.ourproject.kune.gallery.client.GalleryClientTool;
import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
-import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO;
import org.ourproject.kune.platf.client.dto.StateContentDTO;
-import org.ourproject.kune.platf.client.dto.StateToken;
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 org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import com.calclab.suco.client.ioc.Provider;
public class GalleryViewerPresenter extends FoldableContentPresenter implements GalleryViewer {
- private GalleryViewerView view;
- private final Provider<FileDownloadUtils> downloadProvider;
public GalleryViewerPresenter(StateManager stateManager, Session session, I18nUITranslationService i18n,
ActionContentToolbar toolbar, ContentActionRegistry actionRegistry,
Provider<FileDownloadUtils> downloadProvider) {
- super(GalleryClientTool.NAME, stateManager, session, toolbar, actionRegistry);
- this.downloadProvider = downloadProvider;
+ super(GalleryClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider);
}
public void init(GalleryViewerView view) {
super.init(view);
- this.view = view;
}
@Override
@@ -56,28 +49,4 @@
setContent(state, GalleryClientTool.TYPE_UPLOADEDFILE);
}
- private void setContent(StateContentDTO state, String uploadedfileType) {
- String typeId = state.getTypeId();
- String contentBody = state.getContent();
- StateToken token = state.getStateToken();
- BasicMimeTypeDTO mimeType = state.getMimeType();
- if (typeId.equals(uploadedfileType)) {
- if (mimeType != null) {
- FileDownloadUtils fileDownloadUtils = downloadProvider.get();
- if (mimeType.getType().equals("image")) {
- view.showImage(fileDownloadUtils.getImageUrl(token), fileDownloadUtils.getImageResizedUrl(token,
- ImageSize.sized));
- } else if (mimeType.toString().equals("text/plain") || mimeType.toString().equals("application/pdf")) {
- view.setContent(contentBody);
- } else {
- view.setContent("");
- }
- } else {
- view.setContent("");
- }
- } else {
- view.setContent(contentBody);
- }
- view.attach();
- }
}
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerView.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerView.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -22,9 +22,4 @@
import org.ourproject.kune.workspace.client.cnt.AbstractContentView;
public interface GalleryViewerView extends AbstractContentView {
-
- void setContent(String content);
-
- void showImage(String imageUrl, String imageResizedUrl);
-
}
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-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/BasicMimeTypeDTO.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -52,10 +52,33 @@
return type;
}
+ /**
+ * Duplicate code in BMT
+ *
+ * @return
+ */
public boolean isImage() {
- return getType().equals("image");
+ return type != null && type.equals("image");
}
+ /**
+ * Duplicate code in BMT
+ *
+ * @return
+ */
+ public boolean isPdf() {
+ return type != null && subtype != null && type.equals("application") && subtype.equals("pdf");
+ }
+
+ /**
+ * Duplicate code in BMTDTO
+ *
+ * @return
+ */
+ public boolean isText() {
+ return type != null && subtype != null && type.equals("text") && subtype.equals("plain");
+ }
+
public void setSubtype(final String subtype) {
this.subtype = subtype;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -384,7 +384,7 @@
$(I18nUITranslationService.class), $(StateManager.class), $(SiteSignOutLink.class),
$(DeferredCommandWrapper.class));
final TextEditorPanel panel = new TextEditorPanel(presenter, $(I18nTranslationService.class),
- $(WorkspaceSkeleton.class), $(ColorWebSafePalette.class));
+ $(WorkspaceSkeleton.class), $(ColorWebSafePalette.class), false);
presenter.init(panel);
return presenter;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneUiUtils.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneUiUtils.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneUiUtils.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -77,7 +77,7 @@
return tipHtml;
}
- public static String genQuickTipWithImage(String imageResizedUrl) {
+ public static String genQuickTipWithImage(String imageResizedUrl, int size) {
return new Image(imageResizedUrl).toString();
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/BasicMimeType.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/BasicMimeType.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/BasicMimeType.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -53,6 +53,33 @@
return type;
}
+ /**
+ * Duplicate code in BMTDTO
+ *
+ * @return
+ */
+ public boolean isImage() {
+ return type != null && type.equals("image");
+ }
+
+ /**
+ * Duplicate code in BMTDTO
+ *
+ * @return
+ */
+ public boolean isPdf() {
+ return type != null && subtype != null && type.equals("application") && subtype.equals("pdf");
+ }
+
+ /**
+ * Duplicate code in BMTDTO
+ *
+ * @return
+ */
+ public boolean isText() {
+ return type != null && subtype != null && type.equals("text") && subtype.equals("plain");
+ }
+
public void setSubtype(final String subtype) {
this.subtype = subtype;
}
@@ -61,6 +88,7 @@
this.type = type;
}
+ @Override
public String toString() {
return subtype == null ? type : type + "/" + subtype;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileDownloadManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileDownloadManager.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileDownloadManager.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -75,16 +75,24 @@
String extension = FileUtils.getFileNameExtension(filename, true);
BasicMimeType mimeType = cnt.getMimeType();
- if (mimeType.getType().equals("image")) {
+ boolean isPdfAndNotDownload = mimeType.isPdf() && !download;
+ if (mimeType.isImage() || isPdfAndNotDownload) {
String imgsizePrefix = imgsize == null ? "" : "." + imgsize;
String filenameWithoutExtension = FileUtils.getFileNameWithoutExtension(filename, extension);
- String filenameResized = filenameWithoutExtension + imgsizePrefix + extension;
+ String filenameResized = filenameWithoutExtension + imgsizePrefix
+ + (isPdfAndNotDownload ? ".png" : extension);
if (new File(absDir + filenameResized).exists()) {
// thumb can fail
filename = filenameResized;
}
}
+ // We will send the pdf thumb not the real pdf
+ if (isPdfAndNotDownload) {
+ extension = ".png";
+ mimeType = new BasicMimeType("image", "png");
+ }
+
final String absFilename = absDir + filename;
doBuildResp(resp, absFilename, cnt.getTitle(), mimeType, extension, download);
@@ -98,7 +106,7 @@
resp.setContentLength((int) file.length());
if (mimeType == null || download) {
resp.setContentType("application/x-download");
- } else if (mimeType.getType().equals("image")) {
+ } else if (mimeType.isImage()) {
resp.setContentType(mimeType.toString());
} else {
resp.setContentType("application/x-download");
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -42,6 +42,7 @@
import org.ourproject.kune.platf.server.domain.User;
import org.ourproject.kune.platf.server.manager.FileManager;
import org.ourproject.kune.platf.server.properties.KuneProperties;
+import org.ourproject.kune.platf.server.utils.StringW;
import com.google.inject.Inject;
import com.google.inject.servlet.RequestScoped;
@@ -116,15 +117,21 @@
log.info("Mimetype: " + basicMimeType);
final String extension = FileUtils.getFileNameExtension(file.getName(), false);
- if (basicMimeType.getType().equals("image")) {
- generateThumbs(absDir, file.getName(), extension);
+ String preview = "";
+
+ if (basicMimeType.isImage()) {
+ generateThumbs(absDir, file.getName(), extension, false);
+ } else if (basicMimeType.isPdf()) {
+ generateThumbs(absDir, file.getName(), "png", true);
+ } else if (basicMimeType.isText()) {
+ String textPreview = new String(FileUtils.getBytesFromFile(file));
+ preview = "<pre>" + StringW.wordWrap(textPreview) + "</pre>";
}
// Persist
final User user = userSession.getUser();
final Container container = accessService.accessToContainer(ContentUtils.parseId(stateToken.getFolder()),
user, AccessRol.Editor);
- final String preview = "Preview of this file (in development)";
final Content content = contentManager.createContent(FileUtils.getFileNameWithoutExtension(file.getName(),
extension), preview, user, container, typeId);
content.setMimeType(basicMimeType);
@@ -138,7 +145,7 @@
}
}
- private void generateThumbs(String absDir, String filename, String extension) {
+ private void generateThumbs(String absDir, String filename, String extension, boolean isPdf) {
try {
String fileOrig = absDir + filename;
String withoutExtension = FileUtils.getFileNameWithoutExtension(filename, extension);
@@ -146,6 +153,7 @@
String resizeName = absDir + withoutExtension + "." + ImageSize.sized + "." + extension;
String thumbName = absDir + withoutExtension + "." + ImageSize.thumb + "." + extension;
String iconName = absDir + withoutExtension + "." + ImageSize.ico + "." + extension;
+ String previewName = absDir + withoutExtension + "." + extension;
int resizeWidth = Integer.parseInt(kuneProperties.get(KuneProperties.IMAGES_RESIZEWIDTH));
int thumbSize = Integer.parseInt(kuneProperties.get(KuneProperties.IMAGES_THUMBSIZE));
@@ -155,6 +163,9 @@
ImageUtilsDefault.scaleImageToMax(fileOrig, resizeName, resizeWidth);
ImageUtilsDefault.createThumb(fileOrig, thumbName, thumbSize, cropSize);
ImageUtilsDefault.createThumb(fileOrig, iconName, iconSize);
+ if (isPdf) {
+ ImageUtilsDefault.createThumbFromPdf(fileOrig, previewName);
+ }
} catch (NumberFormatException e) {
log.error("Image sizes in kune.properties are not integers");
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/ImageUtilsDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/ImageUtilsDefault.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/ImageUtilsDefault.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -46,7 +46,7 @@
if (thumbDimension < cropDimension) {
throw new IndexOutOfBoundsException("Thumb dimension must be bigger than crop dimension");
}
- MagickImage imageOrig = createImage(fileOrig);
+ MagickImage imageOrig = readImage(fileOrig);
Dimension origDimension = imageOrig.getDimension();
int origHeight = origDimension.height;
int origWidth = origDimension.width;
@@ -57,6 +57,12 @@
cropImage(scaled, fileDest, x, y, cropDimension, cropDimension);
}
+ static public boolean createThumbFromPdf(String pdfFile, String newPngFile) throws MagickException {
+ MagickImage pdf = readImage(pdfFile);
+ MagickImage pdf1 = pdf.breakFrames()[0];
+ return writeImage(pdf1, newPngFile);
+ }
+
public static boolean cropImage(String fileOrig, String fileDest, int x, int y, int width, int height)
throws MagickException, FileNotFoundException {
Rectangle rectangle = new Rectangle(x, y, width, height);
@@ -66,32 +72,42 @@
public static boolean cropImage(String fileOrig, String fileDest, Rectangle rectangle) throws MagickException,
FileNotFoundException {
checkExist(fileOrig);
- return cropImage(createImage(fileOrig), fileDest, rectangle);
+ return cropImage(readImage(fileOrig), fileDest, rectangle);
}
public static Dimension getDimension(String file) throws MagickException {
- MagickImage imageOrig = createImage(file);
+ MagickImage imageOrig = readImage(file);
return imageOrig.getDimension();
}
+ /**
+ * FIXME: Not working, returns null always (bug)
+ *
+ */
+ public static String getPage(String file) throws MagickException {
+ ImageInfo imageInfo = new ImageInfo(file);
+ new MagickImage(imageInfo);
+ return imageInfo.getPage();
+ }
+
public static boolean scaleImage(String fileOrig, String fileDest, Dimension dimension) throws MagickException,
FileNotFoundException {
checkExist(fileOrig);
- MagickImage imageOrig = createImage(fileOrig);
+ MagickImage imageOrig = readImage(fileOrig);
return scaleImage(imageOrig, fileDest, (int) dimension.getWidth(), (int) dimension.getHeight());
}
public static boolean scaleImage(String fileOrig, String fileDest, int width, int height) throws MagickException,
FileNotFoundException {
checkExist(fileOrig);
- MagickImage imageOrig = createImage(fileOrig);
+ MagickImage imageOrig = readImage(fileOrig);
return scaleImage(imageOrig, fileDest, width, height);
}
public static boolean scaleImageToMax(String fileOrig, String fileDest, int maxSize) throws MagickException,
FileNotFoundException {
checkExist(fileOrig);
- MagickImage imageOrig = createImage(fileOrig);
+ MagickImage imageOrig = readImage(fileOrig);
Dimension origDimension = imageOrig.getDimension();
int origHeight = origDimension.height;
int origWidth = origDimension.width;
@@ -130,12 +146,14 @@
}
private static ImageInfo createEmptyImageInfo() throws MagickException {
- ImageInfo info = new ImageInfo();
- return info;
+ ImageInfo imageInfo = new ImageInfo();
+ return imageInfo;
}
- private static MagickImage createImage(String file) throws MagickException {
- return new MagickImage(new ImageInfo(file));
+ private static ImageInfo createEmptyImageInfoWithNoPage() throws MagickException {
+ ImageInfo imageInfo = createEmptyImageInfo();
+ imageInfo.setPage("0x0+0+0");
+ return imageInfo;
}
private static boolean cropImage(MagickImage fileOrig, String fileDest, int x, int y, int width, int height)
@@ -146,9 +164,16 @@
private static boolean cropImage(MagickImage fileOrig, String fileDest, Rectangle rectangle) throws MagickException {
MagickImage cropped = fileOrig.cropImage(rectangle);
- return writeImage(cropped, fileDest);
+ cropped.setFileName(fileDest);
+ ImageInfo imageInfo = createEmptyImageInfoWithNoPage();
+ return cropped.writeImage(imageInfo);
}
+ private static MagickImage readImage(String file) throws MagickException {
+ ImageInfo imageInfo = new ImageInfo(file);
+ return new MagickImage(imageInfo);
+ }
+
private static MagickImage scaleImage(MagickImage imageOrig, int width, int height) throws MagickException {
return imageOrig.scaleImage(width, height);
}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/utils/StringW.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/utils/StringW.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/utils/StringW.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -0,0 +1,305 @@
+/*
+ * Copyright 1999,2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Copied from GenerationJava Core Library.
+//package com.generationjava.lang;
+// copied in kune from:
+// http://svn.apache.org/repos/asf/jakarta/taglibs/proper/string/trunk/src/org…
+package org.ourproject.kune.platf.server.utils;
+
+import org.apache.commons.lang.StringUtils;
+
+/**
+ * A set of String library static methods. While extending String or
+ * StringBuffer would have been the nicest solution, that is not possible, so a
+ * simple set of static methods seems the most workable.
+ *
+ * Method ideas have so far been taken from the PHP4, Ruby and .NET languages.
+ *
+ * @author bayard(a)generationjava.com
+ * @version 0.4 20010812
+ */
+final public class StringW {
+
+ /**
+ * Quote a string so that it may be used in a regular expression without any
+ * parts of the string being considered as a part of the regular
+ * expression's control characters.
+ */
+ static public String quoteRegularExpression(String str) {
+ // replace ? + * / . ^ $ as long as they're not in character
+ // class. so must be done by hand
+ char[] chrs = str.toCharArray();
+ int sz = chrs.length;
+ StringBuffer buffer = new StringBuffer(2 * sz);
+ for (int i = 0; i < sz; i++) {
+ switch (chrs[i]) {
+ case '[':
+ case ']':
+ case '?':
+ case '+':
+ case '*':
+ case '/':
+ case '.':
+ case '^':
+ case '$':
+ buffer.append("\\");
+ default:
+ buffer.append(chrs[i]);
+ }
+ }
+ return buffer.toString();
+ }
+
+ /**
+ * Truncates a string nicely. It will search for the first space after the
+ * lower limit and truncate the string there. It will also append any string
+ * passed as a parameter to the end of the string. The hard limit can be
+ * specified to forcibily truncate a string (in the case of an extremely
+ * long word or such). All HTML/XML markup will be stripped from the string
+ * prior to processing for truncation.
+ *
+ * @param str
+ * String the string to be truncated.
+ * @param lower
+ * int value of the lower limit.
+ * @param upper
+ * int value of the upper limit, -1 if no limit is desired. If
+ * the uppper limit is lower than the lower limit, it will be
+ * adjusted to be same as the lower limit.
+ * @param appendToEnd
+ * String to be appended to the end of the truncated string. This
+ * is appended ONLY if the string was indeed truncated. The
+ * append is does not count towards any lower/upper limits.
+ *
+ * @author timster(a)mac.com
+ */
+ public static String truncateNicely(String str, int lower, int upper, String appendToEnd) {
+ // strip markup from the string
+ str = XmlW.removeXml(str);
+
+ // unescape temporarily for length handling
+ str = XmlW.unescapeXml(str);
+
+ // quickly adjust the upper if it is set lower than 'lower'
+ if (upper < lower) {
+ upper = lower;
+ }
+
+ // now determine if the string fits within the upper limit
+ // if it does, go straight to return, do not pass 'go' and collect $200
+ if (str.length() > upper) {
+ // the magic location int
+ int loc;
+
+ // first we determine where the next space appears after lower
+ loc = str.lastIndexOf(' ', upper);
+
+ // now we'll see if the location is greater than the lower limit
+ if (loc >= lower) {
+ // yes it was, so we'll cut it off here
+ str = str.substring(0, loc);
+ } else {
+ // no it wasnt, so we'll cut it off at the upper limit
+ str = str.substring(0, upper);
+ }
+
+ // the string was truncated, so we append the appendToEnd String
+ str = str + appendToEnd;
+ }
+
+ // escape after finished processing string
+ str = XmlW.escapeXml(str);
+
+ return str;
+ }
+
+ /**
+ * Create a word-wrapped version of a String. Wrap at 80 characters and use
+ * newlines as the delimiter. If a word is over 80 characters long use a -
+ * sign to split it.
+ */
+ static public String wordWrap(String str) {
+ return wordWrap(str, 80, "\n", "-", true);
+ }
+
+ /**
+ * Create a word-wrapped version of a String. Wrap at a specified width and
+ * use newlines as the delimiter. If a word is over the width in lenght use
+ * a - sign to split it.
+ */
+ static public String wordWrap(String str, int width) {
+ return wordWrap(str, width, "\n", "-", true);
+ }
+
+ /**
+ * Word-wrap a string.
+ *
+ * @param str
+ * String to word-wrap
+ * @param width
+ * int to wrap at
+ * @param delim
+ * String to use to separate lines
+ * @param split
+ * String to use to split a word greater than width long
+ *
+ * @return String that has been word wrapped (with the delim inside width
+ * boundaries)
+ */
+ static public String wordWrap(String str, int width, String delim, String split) {
+ return wordWrap(str, width, delim, split, true);
+ }
+
+ /**
+ * Word-wrap a string.
+ *
+ * @param str
+ * String to word-wrap
+ * @param width
+ * int to wrap at
+ * @param delim
+ * String to use to separate lines
+ * @param split
+ * String to use to split a word greater than width long
+ * @param delimInside
+ * wheter or not delim should be included in chunk before length
+ * reaches width.
+ *
+ * @return String that has been word wrapped
+ */
+ static public String wordWrap(String str, int width, String delim, String split, boolean delimInside) {
+ int sz = str.length();
+
+ // System.err.println( ">>>> inside: " + delimInside + " sz : " + sz );
+
+ // / shift width up one. mainly as it makes the logic easier
+ width++;
+
+ // our best guess as to an initial size
+ StringBuffer buffer = new StringBuffer(sz / width * delim.length() + sz);
+
+ // every line might include a delim on the end
+ // System.err.println( "width before: "+ width );
+ if (delimInside) {
+ width = width - delim.length();
+ } else {
+ width--;
+ }
+ // System.err.println( "width after: "+ width );
+
+ int idx = -1;
+ String substr = null;
+
+ // beware: i is rolled-back inside the loop
+ for (int i = 0; i < sz; i += width) {
+
+ // on the last line
+ if (i > sz - width) {
+ buffer.append(str.substring(i));
+ // System.err.print("LAST-LINE: "+str.substring(i));
+ break;
+ }
+
+ // System.err.println("loop[i] is: "+i);
+ // the current line
+ substr = str.substring(i, i + width);
+ // System.err.println( "substr: " + substr );
+
+ // is the delim already on the line
+ idx = substr.indexOf(delim);
+ // System.err.println( "i: " + i + " idx : " + idx );
+ if (idx != -1) {
+ buffer.append(substr.substring(0, idx));
+ // System.err.println("Substr: '"substr.substring(0,idx)+"'");
+ buffer.append(delim);
+ i -= width - idx - delim.length();
+
+ // System.err.println("loop[i] is now: "+i);
+ // System.err.println("ounfd-whitespace: '"+substr.charAt(idx+1)+"'.");
+ // Erase a space after a delim. Is this too obscure?
+ if (substr.length() > idx + 1) {
+ if (substr.charAt(idx + 1) != '\n') {
+ if (Character.isWhitespace(substr.charAt(idx + 1))) {
+ i++;
+ }
+ }
+ }
+ // System.err.println("i -= "+width+"-"+idx);
+ continue;
+ }
+
+ idx = -1;
+
+ // figure out where the last space is
+ char[] chrs = substr.toCharArray();
+ for (int j = width; j > 0; j--) {
+ if (Character.isWhitespace(chrs[j - 1])) {
+ idx = j;
+ // System.err.println("Found whitespace: "+idx);
+ break;
+ }
+ }
+
+ // idx is the last whitespace on the line.
+ // System.err.println("idx is "+idx);
+ if (idx == -1) {
+ for (int j = width; j > 0; j--) {
+ if (chrs[j - 1] == '-') {
+ idx = j;
+ // System.err.println("Found Dash: "+idx);
+ break;
+ }
+ }
+ if (idx == -1) {
+ buffer.append(substr);
+ buffer.append(delim);
+ // System.err.print(substr);
+ // System.err.print(delim);
+ } else {
+ if (idx != width) {
+ idx++;
+ }
+ buffer.append(substr.substring(0, idx));
+ buffer.append(delim);
+ // System.err.print(substr.substring(0,idx));
+ // System.err.print(delim);
+ i -= width - idx;
+ }
+ } else {
+ /*
+ * if(force) { if(idx == width-1) { buffer.append(substr);
+ * buffer.append(delim); } else { // stick a split in. int
+ * splitsz = split.length();
+ * buffer.append(substr.substring(0,width-splitsz));
+ * buffer.append(split); buffer.append(delim); i -= splitsz; } }
+ * else {
+ */
+ // insert spaces
+ buffer.append(substr.substring(0, idx));
+ buffer.append(StringUtils.repeat(" ", width - idx));
+ // System.err.print(substr.substring(0,idx));
+ // System.err.print(StringUtils.repeat(" ",width-idx));
+ buffer.append(delim);
+ // System.err.print(delim);
+ // System.err.println("i -= "+width+"-"+idx);
+ i -= width - idx;
+ // }
+ }
+ }
+ // System.err.println("\n*************");
+ return buffer.toString();
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/utils/XmlW.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/utils/XmlW.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/utils/XmlW.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -0,0 +1,161 @@
+/*
+ * Copyright 1999,2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Copied from GenerationJava Core Library.
+//package com.generationjava.web;
+// Copied in kune from:
+// http://svn.apache.org/repos/asf/jakarta/taglibs/proper/string/trunk/src/org…
+package org.ourproject.kune.platf.server.utils;
+
+import org.apache.commons.lang.StringUtils;
+
+/**
+ * XML helping static methods.
+ *
+ * @author bayard(a)generationjava.com
+ * @version 0.4 20010812
+ */
+final public class XmlW {
+
+ static public String escapeXml(String str) {
+ str = StringUtils.replace(str, "&", "&");
+ str = StringUtils.replace(str, "<", "<");
+ str = StringUtils.replace(str, ">", ">");
+ str = StringUtils.replace(str, "\"", """);
+ str = StringUtils.replace(str, "'", "'");
+ return str;
+ }
+
+ static public String getAttribute(String attribute, String text) {
+ return getAttribute(attribute, text, 0);
+ }
+
+ static public String getAttribute(String attribute, String text, int idx) {
+ int close = text.indexOf(">", idx);
+ int attrIdx = text.indexOf(attribute + "=\"", idx);
+ if (attrIdx == -1) {
+ return null;
+ }
+ if (attrIdx > close) {
+ return null;
+ }
+ int attrStartIdx = attrIdx + attribute.length() + 2;
+ int attrCloseIdx = text.indexOf("\"", attrStartIdx);
+ if (attrCloseIdx > close) {
+ return null;
+ }
+ return unescapeXml(text.substring(attrStartIdx, attrCloseIdx));
+ }
+
+ static public String getContent(String tag, String text) {
+ int idx = XmlW.getIndexOpeningTag(tag, text);
+ if (idx == -1) {
+ return "";
+ }
+ text = text.substring(idx);
+ int end = XmlW.getIndexClosingTag(tag, text);
+ idx = text.indexOf('>');
+ if (idx == -1) {
+ return "";
+ }
+ return text.substring(idx + 1, end);
+ }
+
+ // Pass in "para" and a string that starts with
+ // <para> and it will return the index of the matching </para>
+ // It assumes well-formed xml. Or well enough.
+ static public int getIndexClosingTag(String tag, String text) {
+ return getIndexClosingTag(tag, text, 0);
+ }
+
+ static public int getIndexClosingTag(String tag, String text, int start) {
+ String open = "<" + tag;
+ String close = "</" + tag + ">";
+ // System.err.println("OPEN: "+open);
+ // System.err.println("CLOSE: "+close);
+ int closeSz = close.length();
+ int nextCloseIdx = text.indexOf(close, start);
+ // System.err.println("first close: "+nextCloseIdx);
+ if (nextCloseIdx == -1) {
+ return -1;
+ }
+ int count = StringUtils.countMatches(text.substring(start, nextCloseIdx), open);
+ // System.err.println("count: "+count);
+ if (count == 0) {
+ return -1; // tag is never opened
+ }
+ int expected = 1;
+ while (count != expected) {
+ nextCloseIdx = text.indexOf(close, nextCloseIdx + closeSz);
+ if (nextCloseIdx == -1) {
+ return -1;
+ }
+ count = StringUtils.countMatches(text.substring(start, nextCloseIdx), open);
+ expected++;
+ }
+ return nextCloseIdx;
+ }
+
+ static public int getIndexOpeningTag(String tag, String text) {
+ return getIndexOpeningTag(tag, text, 0);
+ }
+
+ /**
+ * Remove any xml tags from a String. Same as HtmlW's method.
+ */
+ static public String removeXml(String str) {
+ int sz = str.length();
+ StringBuffer buffer = new StringBuffer(sz);
+ // boolean inString = false;
+ boolean inTag = false;
+ for (int i = 0; i < sz; i++) {
+ char ch = str.charAt(i);
+ if (ch == '<') {
+ inTag = true;
+ } else if (ch == '>') {
+ inTag = false;
+ continue;
+ }
+ if (!inTag) {
+ buffer.append(ch);
+ }
+ }
+ return buffer.toString();
+ }
+
+ static public String unescapeXml(String str) {
+ str = StringUtils.replace(str, "&", "&");
+ str = StringUtils.replace(str, "<", "<");
+ str = StringUtils.replace(str, ">", ">");
+ str = StringUtils.replace(str, """, "\"");
+ str = StringUtils.replace(str, "'", "'");
+ return str;
+ }
+
+ static private int getIndexOpeningTag(String tag, String text, int start) {
+ // consider whitespace?
+ int idx = text.indexOf("<" + tag, start);
+ if (idx == -1) {
+ return -1;
+ }
+ char next = text.charAt(idx + 1 + tag.length());
+ if ((next == '>') || Character.isWhitespace(next)) {
+ return idx;
+ } else {
+ return getIndexOpeningTag(tag, text, idx + 1);
+ }
+ }
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -100,7 +100,7 @@
createEditAction(TYPE_WIKIPAGE);
- createTranslateAction(TYPE_FOLDER, TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
+ createTranslateAction(TYPE_FOLDER, TYPE_WIKIPAGE);
createDelContainerAction("Delete folder", parentMenuTitleCtx, containersNoRoot);
createDelContentAction(parentMenuTitle, i18n.t("Delete"), contents);
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -108,7 +108,7 @@
public WikiFolderContent create() {
final WikiFolderContentPresenter presenter = new WikiFolderContentPresenter($(StateManager.class),
$(Session.class), $(ActionContentToolbar.class), $(ContentActionRegistry.class),
- $(I18nTranslationService.class));
+ $(I18nTranslationService.class), $$(FileDownloadUtils.class));
final WikiFolderContentView view = new WikiFolderContentPanel($(WorkspaceSkeleton.class),
$(I18nTranslationService.class));
presenter.init(view);
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -46,7 +46,7 @@
registerRateableTypes(TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
registerRenamableTypes(TYPE_FOLDER, TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
registerTageableTypes(TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
- registerTranslatableTypes(TYPE_FOLDER, TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
+ registerTranslatableTypes(TYPE_FOLDER, TYPE_WIKIPAGE);
registerIcons();
}
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPresenter.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPresenter.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -27,17 +27,21 @@
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.wiki.client.WikiClientTool;
import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter;
+import com.calclab.suco.client.ioc.Provider;
+
public class WikiFolderContentPresenter extends FoldableContentPresenter implements WikiFolderContent {
private WikiFolderContentView view;
private final I18nTranslationService i18n;
public WikiFolderContentPresenter(StateManager stateManager, Session session, ActionContentToolbar toolbar,
- final ActionRegistry<StateToken> actionRegistry, I18nTranslationService i18n) {
- super(WikiClientTool.NAME, stateManager, session, toolbar, actionRegistry);
+ final ActionRegistry<StateToken> actionRegistry, I18nTranslationService i18n,
+ Provider<FileDownloadUtils> downloadProvider) {
+ super(WikiClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider);
this.i18n = i18n;
}
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -19,35 +19,28 @@
*/
package org.ourproject.kune.wiki.client.cnt;
-import org.ourproject.kune.wiki.client.WikiClientTool;
import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
-import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO;
import org.ourproject.kune.platf.client.dto.StateContentDTO;
-import org.ourproject.kune.platf.client.dto.StateToken;
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.wiki.client.WikiClientTool;
import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import com.calclab.suco.client.ioc.Provider;
public class WikiViewerPresenter extends FoldableContentPresenter implements WikiViewer {
- private WikiViewerView view;
- private final Provider<FileDownloadUtils> downloadProvider;
public WikiViewerPresenter(StateManager stateManager, Session session, I18nUITranslationService i18n,
ActionContentToolbar toolbar, ContentActionRegistry actionRegistry,
Provider<FileDownloadUtils> downloadProvider) {
- super(WikiClientTool.NAME, stateManager, session, toolbar, actionRegistry);
- this.downloadProvider = downloadProvider;
+ super(WikiClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider);
}
public void init(WikiViewerView view) {
super.init(view);
- this.view = view;
}
@Override
@@ -55,29 +48,4 @@
super.setState(state);
setContent(state, WikiClientTool.TYPE_UPLOADEDFILE);
}
-
- private void setContent(StateContentDTO state, String uploadedfileType) {
- String typeId = state.getTypeId();
- String contentBody = state.getContent();
- StateToken token = state.getStateToken();
- BasicMimeTypeDTO mimeType = state.getMimeType();
- if (typeId.equals(uploadedfileType)) {
- if (mimeType != null) {
- FileDownloadUtils fileDownloadUtils = downloadProvider.get();
- if (mimeType.getType().equals("image")) {
- view.showImage(fileDownloadUtils.getImageUrl(token), fileDownloadUtils.getImageResizedUrl(token,
- ImageSize.sized));
- } else if (mimeType.toString().equals("text/plain") || mimeType.toString().equals("application/pdf")) {
- view.setContent(contentBody);
- } else {
- view.setContent("");
- }
- } else {
- view.setContent("");
- }
- } else {
- view.setContent(contentBody);
- }
- view.attach();
- }
}
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerView.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerView.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -22,9 +22,4 @@
import org.ourproject.kune.workspace.client.cnt.AbstractContentView;
public interface WikiViewerView extends AbstractContentView {
-
- void setContent(String content);
-
- void showImage(String imageUrl, String imageResizedUrl);
-
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentPresenter.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentPresenter.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -2,7 +2,7 @@
public abstract class AbstractContentPresenter {
- private AbstractContentView view;
+ protected AbstractContentView view;
public AbstractContentPresenter() {
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -1,11 +1,22 @@
package org.ourproject.kune.workspace.client.cnt;
+import com.google.gwt.user.client.ui.Widget;
+
public interface AbstractContentView {
+ public void setRawContent(final String content);
+
void attach();
void detach();
+ void setContent(String content, boolean showPreviewMsg);
+
void setInfo(String info);
+ void setNoPreview();
+
+ void setWidgetAsContent(final Widget widget, boolean setDefMargins);
+
+ void showImage(String imageUrl, String imageResizedUrl, boolean showPreviewMsg);
}
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-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -1,35 +1,43 @@
package org.ourproject.kune.workspace.client.cnt;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.services.Images;
+import org.ourproject.kune.platf.client.ui.IconLabel;
import org.ourproject.kune.platf.client.ui.KuneUiUtils;
+import org.ourproject.kune.platf.client.ui.RoundedPanel;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.HTML;
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;
-public abstract class FoldableContentPanel extends AbstractContentPanel {
+public abstract class FoldableContentPanel extends AbstractContentPanel implements AbstractContentView {
+ private static final String DEF_CONTENT_MARGINS_STYLE = "kune-Margin-7-trbl";
private final I18nTranslationService i18n;
+ private final RoundedPanel previewPanel;
+ private final IconLabel previewLabel;
public FoldableContentPanel(final WorkspaceSkeleton ws, I18nTranslationService i18n) {
super(ws);
this.i18n = i18n;
+ previewLabel = new IconLabel(Images.App.getInstance().info(), "");
+ previewLabel.addStyleName("k-preview-msg-lab");
+ previewPanel = new RoundedPanel(previewLabel, RoundedPanel.ALL, 2);
+ previewPanel.setCornerStyleName("k-preview-msg");
+ previewPanel.addStyleName("kune-Margin-7-b");
}
- public void setContent(final String content) {
+ public void setContent(String content, boolean showPreviewMsg) {
+ final VerticalPanel vp = createPreviewVp(showPreviewMsg);
final HTML html = new HTML(content);
- setContent(html);
+ vp.add(html);
+ setWidgetAsContent(vp, true);
}
- public void setContent(final Widget widget) {
- setDefStyle(widget);
- setWidget(widget);
- attach();
- }
-
public void setInfo(String info) {
setLabel(info);
}
@@ -40,7 +48,27 @@
setWidget(label);
}
- public void showImage(String imageUrl, String imageResizedUrl) {
+ public void setNoPreview() {
+ VerticalPanel vp = createPreviewVp(true);
+ setNoPreviewLabelMsg();
+ setWidgetAsContent(vp, true);
+ }
+
+ public void setRawContent(final String content) {
+ final HTML html = new HTML(content);
+ setDefStyle(html);
+ setContent(html);
+ }
+
+ public void setWidgetAsContent(final Widget widget, boolean setDefMargins) {
+ if (setDefMargins) {
+ widget.addStyleName(DEF_CONTENT_MARGINS_STYLE);
+ }
+ setContent(widget);
+ }
+
+ public void showImage(String imageUrl, String imageResizedUrl, boolean showPreviewMsg) {
+ final VerticalPanel vp = createPreviewVp(showPreviewMsg);
final Image imgOrig = new Image(imageUrl);
final Image imgResized = new Image(imageResizedUrl);
KuneUiUtils.setQuickTip(imgOrig, i18n.t("Click to zoom out"));
@@ -51,25 +79,45 @@
imgResized.addStyleName("kune-pointer");
imgResized.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
- detach();
- setWidget(imgOrig);
- attach();
+ imgResized.removeFromParent();
+ vp.add(imgOrig);
}
});
imgOrig.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
- detach();
- setWidget(imgResized);
- attach();
+ imgOrig.removeFromParent();
+ vp.add(imgResized);
}
});
- setWidget(imgResized);
- attach();
+ vp.add(imgResized);
+ setWidgetAsContent(vp, true);
Image.prefetch(imageUrl);
}
+ private VerticalPanel createPreviewVp(boolean showPreviewMsg) {
+ final VerticalPanel vp = new VerticalPanel();
+ if (showPreviewMsg) {
+ setDefPreviewMsg();
+ vp.add(previewPanel);
+ }
+ return vp;
+ }
+
+ private void setContent(final Widget widget) {
+ setWidget(widget);
+ attach();
+ }
+
+ private void setDefPreviewMsg() {
+ previewLabel.setText(i18n.t("This is only a preview, download it to get the complete file"));
+ }
+
private void setDefStyle(final Widget widget) {
widget.setStyleName("kune-Content-Main");
- widget.addStyleName("kune-Margin-7-trbl");
+ widget.addStyleName(DEF_CONTENT_MARGINS_STYLE);
}
+
+ private void setNoPreviewLabelMsg() {
+ previewLabel.setText(i18n.t("Preview not available"));
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -4,13 +4,17 @@
import org.ourproject.kune.platf.client.actions.ActionRegistry;
import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
+import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO;
import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
import org.ourproject.kune.platf.client.dto.StateContainerDTO;
import org.ourproject.kune.platf.client.dto.StateContentDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
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 com.calclab.suco.client.ioc.Provider;
import com.calclab.suco.client.listener.Listener;
public abstract class FoldableContentPresenter extends AbstractContentPresenter implements FoldableContent {
@@ -19,13 +23,16 @@
private final ActionRegistry<StateToken> actionRegistry;
protected final Session session;
private final ActionContentToolbar toolbar;
+ private final Provider<FileDownloadUtils> downloadProvider;
public FoldableContentPresenter(final String toolName, StateManager stateManager, Session session,
- final ActionContentToolbar toolbar, ActionRegistry<StateToken> actionRegistry) {
+ final ActionContentToolbar toolbar, ActionRegistry<StateToken> actionRegistry,
+ Provider<FileDownloadUtils> downloadProvider) {
this.toolName = toolName;
this.session = session;
this.toolbar = toolbar;
this.actionRegistry = actionRegistry;
+ this.downloadProvider = downloadProvider;
stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
public void onEvent(final StateAbstractDTO state) {
setState(state);
@@ -41,6 +48,34 @@
setState(session.getContentState());
}
+ protected void setContent(StateContentDTO state, String uploadedfileType) {
+ String typeId = state.getTypeId();
+ String contentBody = state.getContent();
+ StateToken token = state.getStateToken();
+ BasicMimeTypeDTO mimeType = state.getMimeType();
+ if (typeId.equals(uploadedfileType)) {
+ if (mimeType != null) {
+ FileDownloadUtils fileDownloadUtils = downloadProvider.get();
+ if (mimeType.isImage()) {
+ view.showImage(fileDownloadUtils.getImageUrl(token), fileDownloadUtils.getImageResizedUrl(token,
+ ImageSize.sized), false);
+ } else if (mimeType.isPdf()) {
+ view.showImage(fileDownloadUtils.getImageUrl(token), fileDownloadUtils.getImageResizedUrl(token,
+ ImageSize.sized), true);
+ } else if (mimeType.isText()) {
+ view.setContent(contentBody, true);
+ } else {
+ view.setNoPreview();
+ }
+ } else {
+ view.setNoPreview();
+ }
+ } else {
+ view.setRawContent(contentBody);
+ }
+ view.attach();
+ }
+
protected void setState(StateAbstractDTO state) {
toolbar.detach();
if (state instanceof StateContainerDTO) {
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-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -332,9 +332,9 @@
}
private String getTooltip(StateToken token, BasicMimeTypeDTO mimeType) {
- if (mimeType != null && mimeType.getType().equals("image")) {
+ if (mimeType != null && (mimeType.isImage() || mimeType.isPdf())) {
return KuneUiUtils.genQuickTipWithImage(downloadUtilsProvider.get().getImageResizedUrl(token,
- ImageSize.thumb));
+ ImageSize.thumb), session.getImgCropsize());
} else {
return null;
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -45,7 +45,7 @@
private final WorkspaceSkeleton ws;
public TextEditorPanel(final TextEditorPresenter presenter, final I18nTranslationService i18n,
- final WorkspaceSkeleton ws, final ColorWebSafePalette colorPalette) {
+ final WorkspaceSkeleton ws, final ColorWebSafePalette colorPalette, boolean permitHtmlButton) {
this.presenter = presenter;
this.i18n = i18n;
this.ws = ws;
@@ -53,14 +53,14 @@
mainPanel.setWidth("100%");
gwtRTarea = new RichTextArea();
- gwtRTarea.setWidth("97%");
+ gwtRTarea.setWidth("96%");
gwtRTarea.setHeight("100%");
gwtRTarea.addStyleName("kune-TexEditorPanel-TextArea");
gwtRTarea.ensureDebugId(TEXT_AREA);
final Toolbar editorTopBar = new Toolbar();
editorTopBar.getPanel().setWidth("auto");
- textEditorToolbar = new TextEditorToolbar(gwtRTarea, presenter, colorPalette, i18n);
+ textEditorToolbar = new TextEditorToolbar(gwtRTarea, presenter, colorPalette, i18n, permitHtmlButton);
editorTopBar.add(textEditorToolbar);
editorTopBar.addStyleName("k-toolbar-bottom-line");
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbar.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbar.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -115,6 +115,8 @@
colorPalette.hide();
}
});
+ } else if (sender == editHtml) {
+ presenter.onEditHTML();
} else if (sender == fontColor) {
colorPalette.show(sender.getAbsoluteLeft(), sender.getAbsoluteTop() + 20, new Listener<String>() {
public void onEvent(final String color) {
@@ -264,6 +266,7 @@
private ToggleButton subscript;
private ToggleButton superscript;
private ToggleButton strikethrough;
+ private ToggleButton editHtml;
private PushButton indent;
private PushButton outdent;
private PushButton justifyLeft;
@@ -291,7 +294,7 @@
* the rich text area to be controlled
*/
public TextEditorToolbar(final RichTextArea richText, final TextEditorPresenter presenter,
- final ColorWebSafePalette colorPalette, final I18nTranslationService i18n) {
+ final ColorWebSafePalette colorPalette, final I18nTranslationService i18n, boolean permitEditHtml) {
this.richText = richText;
this.colorPalette = colorPalette;
this.i18n = i18n;
@@ -348,10 +351,9 @@
richText.addClickListener(listener);
}
- // if (basic != null) {
- // topPanel.add(editHtml = createToggleButton(images.editHtml(),
- // i18n.t("Edit HTML")));
- // }
+ if (basic != null && permitEditHtml) {
+ topPanel.add(editHtml = createToggleButton(images.edithtml(), i18n.t("Edit HTML")));
+ }
// super.setVisible(false);
}
@@ -359,28 +361,28 @@
public void editHTML(final boolean edit) {
final boolean enable = !edit;
if (basic != null) {
- bold.setEnabled(enable);
- italic.setEnabled(enable);
- underline.setEnabled(enable);
- subscript.setEnabled(enable);
- superscript.setEnabled(enable);
- justifyLeft.setEnabled(enable);
- justifyCenter.setEnabled(enable);
- justifyRight.setEnabled(enable);
- backColor.setEnabled(enable);
- fontColor.setEnabled(enable);
+ bold.setVisible(enable);
+ italic.setVisible(enable);
+ underline.setVisible(enable);
+ subscript.setVisible(enable);
+ superscript.setVisible(enable);
+ justifyLeft.setVisible(enable);
+ justifyCenter.setVisible(enable);
+ justifyRight.setVisible(enable);
+ backColor.setVisible(enable);
+ fontColor.setVisible(enable);
}
if (extended != null) {
- strikethrough.setEnabled(enable);
- indent.setEnabled(enable);
- outdent.setEnabled(enable);
- insertImage.setEnabled(enable);
- createLink.setEnabled(enable);
- removeLink.setEnabled(enable);
- ol.setEnabled(enable);
- ul.setEnabled(enable);
- hr.setEnabled(enable);
- removeFormat.setEnabled(enable);
+ strikethrough.setVisible(enable);
+ indent.setVisible(enable);
+ outdent.setVisible(enable);
+ insertImage.setVisible(enable);
+ createLink.setVisible(enable);
+ removeLink.setVisible(enable);
+ ol.setVisible(enable);
+ ul.setVisible(enable);
+ hr.setVisible(enable);
+ removeFormat.setVisible(enable);
fonts.setVisible(enable);
fontSizes.setVisible(enable);
}
@@ -416,8 +418,7 @@
KuneUiUtils.setQuickTip(menu, i18n.t("Font Type"));
menu.addItem(images.charfontname().getHTML(), true, submenu);
- for (int i = 0; i < fontName.length; i++) {
- final String f = fontName[i];
+ for (final String f : fontName) {
submenu.addItem("<span style=\"font-family: " + f + "\">" + f + "</span>", true, new Command() {
public void execute() {
basic.setFontName(f);
Modified: trunk/src/main/resources/kune.properties
===================================================================
--- trunk/src/main/resources/kune.properties 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/main/resources/kune.properties 2008-12-05 17:53:45 UTC (rev 985)
@@ -30,6 +30,7 @@
kune.upload.gallerypermittedextensions = jpg,jpeg,png,gif,bmp,svg,avi,mpg,mpeg,ogg,mov,tif,tiff,mp3,wav
kune.upload.maxfilesizeinmegas = 10
# Images are resized to thumbsize pixels and later cropped (centered) to cropsize
+# (integer values)
kune.images.resizewidth = 400
kune.images.thumbsize = 100
kune.images.cropsize = 85
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/ImageUtilsDefaultTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/ImageUtilsDefaultTest.java 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/ImageUtilsDefaultTest.java 2008-12-05 17:53:45 UTC (rev 985)
@@ -26,8 +26,9 @@
public class ImageUtilsDefaultTest {
private static final String IMG_PATH = "src/test/java/org/ourproject/kune/platf/server/manager/file/";
- private static String[] images = { "orig.png", "orig.gif", "orig.jpg", "orig.tiff" };
+ private static String[] images = { "orig.png", "orig.gif", "orig.jpg", "orig.tiff", "orig.pdf" };
private static String imageDest;
+ private static String pdf = "orig.pdf";
@AfterClass
public static void after() {
@@ -37,10 +38,15 @@
@BeforeClass
public static void before() {
- imageDest = IMG_PATH + "output";
+ imageDest = IMG_PATH + "output.png";
}
@Test
+ public void convertPdfToPng() throws MagickException {
+ ImageUtilsDefault.createThumbFromPdf(IMG_PATH + pdf, imageDest);
+ }
+
+ @Test
public void generateIcon() throws MagickException, FileNotFoundException {
for (String image : images) {
ImageUtilsDefault.createThumb(IMG_PATH + image, imageDest, 16, 16);
@@ -164,9 +170,11 @@
@Test
public void testSize() throws MagickException {
for (String image : images) {
- Dimension dimension = ImageUtilsDefault.getDimension(IMG_PATH + image);
- assertEquals(400, (int) dimension.getHeight());
- assertEquals(300, (int) dimension.getWidth());
+ if (!image.equals(pdf)) {
+ Dimension dimension = ImageUtilsDefault.getDimension(IMG_PATH + image);
+ assertEquals(400, (int) dimension.getHeight());
+ assertEquals(300, (int) dimension.getWidth());
+ }
}
}
Added: trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/orig.pdf
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/orig.pdf 2008-12-05 16:22:07 UTC (rev 984)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/orig.pdf 2008-12-05 17:53:45 UTC (rev 985)
@@ -0,0 +1,445 @@
+%PDF-1.4
+%����
+3 0 obj
+<< /Length 4 0 R
+ /Filter /FlateDecode
+>>
+stream
+x���M�d9�%�������o ���A̢�K�"�"�
�E�,��xxHɮ�p���T"ʟh���(�:���:�M�������y����L�o���=�8����[x���o�<�����������#�����B���O�O�3{-���ˑ��(�V����˭����0�c�[�����ǭΆO5��:tJ�����R����Y��x�~c���ٗ�U#��H^�'���n���i4���C��������q����2&Ss���G,y�QF'��-͚[�o��O�p�h���[K{*�I��oHY���5K�n� �'��Bb�3��za1J�"bJ�dR?I����s
������ ��[�� 9c�Z�o#��~K�-�����mR�[�BB>����Mf�.��t}+s��%�PQ�[��>��a��$�5ɒ�6�H{�H�7
�ﳐY�Hy˒����0����,Z�c�rV1ۗ��g�3�҆9�&a2�'42t���ۀn�6��I�2>3K��J�Y�,c�.��V�S�д�OK�)�/�
+I�:t<�4c��ΊO��Rm����2%^�!�Zi�)
s0������2�x��)�m:��)H��|���Z3D�t��%���C��� 2�Mھ܌ ���isJ{�P�ԒVz!N1�DBOo��!�BzyK}/v���>S8R�˘3Ej��3�~1s�\t�@��ɾ2v�,\f�w��a��(����q������XYUEk$��0�a�~��*���
+�6�͝ZSH��� ��i�4Gì.z�)֝#���b�HNq6�g��ɺ:
+r�(��,
:g��(���R
+D/d4���3�0f/�q�r��
+T�[Z>����1�Hq��~�4uNV����I���S�OE暀"lBx�9[������ws��w�N�Y��\-hi�c��!2}��̩��M1��{�A�y��)7f�r��ֿȌ�ј�%���r3�L�!-sȓ���E�@�IS
Yk��
�����Ζs�ݙ�VS��*�M'��OM�B�%̕�3E���B�m��4g^�f���@�*�V2m��;a���"�F�>̳�[&��R�9t��&KZgs���������NQMUwi��L�'s>�Ht-b��9E��J�XG��*3�Ϫ���ޓ���ݽ�<��,���,��K��dQ�T"
+��S'��u��D��if��`}�9��߷��f�!$e��ς�MT
+
`��zkW���DH�"��i����K������c��s��?zNS�L��^�*Ă|b������=ǭ'������bk�'�����ט�f�OW�M�<���PE��sy9�<e������K9�6�:;��0�����T�StŒ����K:��PX���������Gt�\��*��O|�\�v����J��U�9G��(�M���Ǐo��\�K��@�i*h��HGg�����-K�S���lϤ��r��uv@��_�1Qe�$b[D^gqsYMNy�/�g��ڴ�+���}8��*{�,�W<[G��9���a�e� Nk�Z�0w�h���3�Z6�l��?V���x7�5��6��Y���p�f�rFEe.}6t�E���2�`��e-�eó���:vY���������N+��<��:��(�'3Go���\�:�^c���Q���CgRZ��0=wzًk]v�+��d�d�9jS[��P�IY��P���ޚ�Q��Z�����gn�1s��!��Ȓ��`�F0��Mv��"�M����ľ�vrQ�8O���XR����6,���&�,�������Xm6˳^=�a��36͆���Dh�ε,�-�9y�E6b��H��O�N�#D�#@��<�|���%MkL��2��Kgſ�ϒ�l�Q�.`So�:�]+ϓ�Z� Ś��9A���G`�}�ꥄ��~�2������k�0̏�>'��͵�m�:7J�r��_>��f��_~9~8�3��"�K�����/�jK!��#�:M1Mc<�Wa2�5�(ӐsK�%���"͞���9a���b��yl��EAT�̹���+EÍV!����?�s�d[a%1yX]wϠ�y��6�
+co.88��L��Pϕqu�M+qv�ݡ���u����_����_�������?�����?��~a���S�A�$�C3����7��3��~��_�C��r�M�[����T�����[Գ�)�ڵ��5�t��6f�6���u$��6~�c��\��S�4&���d����V��m��-��c��*��5�R�KTX�Ol�|�-��|�-�N/S��W�����|K!B�i:X
+�,$� gl�yZ�Y�X�a��pƖ��0_=���C��k��n#0���
���N>N�0���kV&G�*��f�Čs�@ +������ 8��`%�Xi�ϣ�?i����0�C�m��Z¢���ht��l��F�)d���Q�Jm�Y6
+Iaa�´�`���jz������袥5>��wxv6y���ï͵�5�dMLz15�o� �[oآ��-;S����Y��M��OC}��V�����^��f���v���[y������)`
��؛K�7K`q�CF����K���*Wʾ|�ݸ��4�q�e��i$Ϻ7�>N+:�E�����l�c��7ʲ�EMr+ԍz���lԦ-#?�-՜���I�"�E0;�(��_m<˴�]�h�ʢ�z���3K*��,�i�����,�?moB��ζuN�b1��� N�"h���>��`�o�5����e���[����m�L�`Ե���>�8�%��M�B `�K.<����CB0
�:��3e�K9~n"} CP*�L|C%�i�Lg� I���:a.du,JLr��7��� �l:�)� ,t�ֻd�ڶd"N�2�E�g*�X� �,�Xm��2q���+�>"q����6wO��A����u��ߐ�1pZ�)���X��ٕE�#>�b�bp�+R6��*��]B��-�FEM*�\HY��"VZ��YϬ&����,�5�د�A�_a��Y?�)/�C��S���O�ҟ�v,�OyR�)�Ny��<�ݦ<۶M���V%Ny�My'��'e��N�g�k�_x�)�§My�y������� 8��[?V�m3m� qzX��4}gC%���H��X3���F��r�Bi�^�[��6��c�zI��KVV��"�����E�{/<����CP� �9s��W�~��XPXH�C�ハ� vv�t�_#�Ī��X�3���s�[�*��_��������S��m���]X�����9���FX{�p�ner�o���ߚe{�l8 ���!!g�$hz��[��;�{+�;�5>��_����{����VR�ׂ!��O�߈��@�j��'�Z@ʶ8�k]k����m[j����[�Ҷ8��R���)\X�Z.<QMp���4A|K���-�OQ�Ϻ� �O��'�N�?
�s ,��ZW\��\YI��5��X`����W�$�t��|���*3���Ւ��CFX� �h��F��Qb��8����h1�C�/�sJû���v@�w]�m?�*|������ �ȿb�1���uM�$��5n�'�e�
����Hxڔ K�8A�����\��ڵ���y�L�#�[��q��R6�������
+/<���*Z��
�#F�ϔ������9]�=���{�aQ`\�
�\R6Yp
+���.a`��0�mK�߰��ޤ,,�ɂQ�,,���e.Q�pD�\��(H
ӖL߆'�2BN����v��wQ\�B��D��5���
+* r0e����K
+̽ɻ�đ�����g��)��0�-+0�����4�ZwHX� ���D_xX�Zxب���,��taþ�,��ƅ瓿������=�Dt������)?]���%6Wo����ו�����o7�����zW$��a�u39���;��y2-�4� 6s���\�Y�U��^�syv��=���|]�cL7�?~7�;&R6g�H�4�.
+�(+7u�^��MFp"��,����"<�*T�lVyH�'�$|I�S�J�$�X�y��<�P+���t}�;�ٵ��]��lL1��̝����9�F
������:�����sUS��̮����e'�줭�r]����6p�T��:�zIm�{�に
��cQf'�w�(�<��Lދ5��U��V�Ve��L�ʅ��(��X���x����WN��oG�=�hw�ls�B�{�d�tN��;N��8Ÿ���úw�u�.M�w)��xs�b}x�6�s����w{�͕��"�U��%$�w�)��m�n����k4��?�ܞ��_~z�zT�7�B���P�_3�fLMMt�{�Vq �=Z{�{xڏ<���x�,px���$���NBq5uQ�2(O� ��~����<e���������C��"��s
+�G��w@6e���@f�r��RӮ-�" �x#�fZ��B�Ob�](���p� =�u����Z,���ݞ��8�4I�]�"F�pT^�.r�Ya`�ʖ�C���'�z�N��4i����d����L@v�s3�Ë����ӭ�LJ���3����U@��`e*x4^n$T����*��<<�m7B�UC|-;�2U�t�\��믇�n�.���'��9^HE���/�Dn ɁT�[���Q�]Hi�˛T�O\������\�!A��~,hӼ�H�S�8>��m��R�3�h���I�}��5��;�J.b��@&��8w���ׁ��3���r�!������k��u��H�.J�9�K�����~�����w�b.+F��s�6�*��Ax� W�I��\��^���h�W2 �[�ɖ�L����e2��9���������
�ي-!7��ΰ%Upb�U|��n7&9���Jx�.�_��)��
+|'�:y$�H�&�^��)j2TO"�F4AB�(q�5�D�p]�Im4�W��vm��Q�02��㘓����V����8D��O�Dv��R>�ɸ
+F�͓���֭���:H^�˳K��Ƃ�):Hu%��;����hB4ͭ���G�!xʭ
8���=8c�ڈv�|����m#����껄�[�B�.�?� 3~+����ZȻ�J�.:k��Y�ި�s¦δ|��/y��S]+dP�\ ��ט�|y�X�,I�!��Q���GiY��Z��ǬJ����m��Q����P%�����ֱ�GK{ۍ`�^���q������\Cl��ߡ�3�0}}�����I4�Z��k�r`��r��;[!�\cA�����X+d���Ğ�Ȭ���ln��@"NKY+d��̶B�ς�B�}�
+����VHK�Ɠ�R��%*-�9��&SJ�wE;k�}��������!FĒS%�#��B1 �t-T��&��I�x�)!�wn�V2!�}"�2��Np�Ir<%#(��O�_.uW���Jy(��VeQUy�m�\պ����,}`���Ĕg�U$>9!�҃�;8�eE
+��'@�Vj���Pӟso6����%��شK%����q!"�m�eyL����J�GG���B�(�Ms"Q�.w��͜��"�MA rF[�S6}j�AuZr�?4�<��+O+ߔ�T��+O6�'��Q۾tg�q���Ұ�1�Y�#-�Y�v�9��rͩ��pMSoʧ-�ޔ��<e���%ζ*[$���r�q�u}r�)wpۚ��{(N�YzJ��< ��Mi���_�4-��B��`C維��q�Ǵ&�_ۊR�t�J��_ZS"�H�,ϐtѠ֔�mkZS��=�����\kZr��jM|��Rz}����,��3�>�����)���.�Y�G4�cz=n��9yx��AÇlh�'������<<�K����e�n�W���C���H��:����F~�K��A'>/�f��[m3P�O>A��o}��;"ށ����L7�����>{4�"�SH���}��@�e�S�Y�5��vƻٸ���xH�,�����H��C�DPs_�r%��J8tVH� �)#���n��Hf�r3g�U���3Y/1�l�J<��|�W�кB����&$�.�2�f�lN!���;@uB��&q����]o������/���넋\���/�"&���MW�v�P�-L�%rkh�J�=������&D0�A��dR[θ~�8�Ǧ{TOˎ7X~�lARQ-�% �#��̮�(��� q�xV`�'U�2��^�E�ٱI#��b-BRHs|2%3�z�"�h%[�,�f���hDjbkk��
+aȀ��2�to2�)F1�>�3���y,A1±Q������f����AڞA�t�`��U�ίi+��lxLQ��)6�3��H�B2|K����껛�F�,Z���S���C7B}X�2��u���1��up%��P��>a0Uu�Ss��f���~����(,y<�~�,u�T�u��h����RtiPaB{��L֞d���x��s�,�&�E�HK�,|�b���[ݘqTzn�����qՎ
������� rH4�(;�OI��E���B��L��H����b�1wԓ�O[
Q+H<����tf,I6�'�WO�͡]�b@��Ŏ�����P��䔠�z�@b'E�4��%B��H�Ё8MH�S��A�aMAsJ��FA(@�ix(�X"��?�%1a�p�����Ԕ��I%%����-G���GI�`����8G��]�'�\�kA�%v�D擻)�KC�D/!�w-:XN�cӬ���2����E5�mo7����\ij$튬B�8$r]�"%�QI�%�@6�`��MS3Jb7tl/�)�]�@�M�ĄABWlő��n��L���`�Ь���^<k܋�ŐBg�Y9U�Lo_<���X��� ��K�*�G[B��-3rX�TFܫ��(n"��X�J�צ���`BsD�
x��@~&>M�dMc\�� ��$e�@;!���Q}��$'�,]�
+b&n$2#x&���.�3 � �ISWFa�~_`W�{�jne��Mqs$k�옞��Lu$+VA��x�G�oD��� +�'���N����9� fOIwDoeG+�S7�h-iE�Ʌ�A
I�G���Hj�(W�ϴ�#�I�AC��0Jar��/��[�-r��Ʉ��$�B J2�N��*!�,��1D
�tø�Ȑ���1�1�bB��VU�Ͳ����T��M�pJ��TUTǖ_�ѱ9A~ �
X�$;E�t2$R@�C3@*�5��I��}gFk�Dm*3i��:^@)N�����d�5�ڧ3;߂�v�RQ7Q��vͮ� ��!~��iY���zFc����>�0�
c0?���nH'�/\DY �4BxC�D�й*`�kVhi؉�0�J��M�$�thN/���8�cZ����k�ٚtM���������uY��kU]�{|?�^~�4�A+���V�0߷kW�AK������CN��A�Qy��I��g�R�����,���Y��UM��qV���A�%��z �%->�)8@vq���:���eP3j���"o$d���Z���VZ�V�HT�����u��+�x��-���r����L��Rg�k�w�~
+�d'���]
+ˁ����ټ|p#�zY���W��BYeT���:0�<VRnM���-s#�!��P����"
+b&�_N�%��Q��jQ@p$
59�� V��7NƁ��5�s�~�K�0Pl)=1���hn���VifN}���lDS�<"���O�Ԣ�>ed��isb./Rd��u���-
+
+)�M1Q��H��i4� SY4�ǂ������ɉG��g3-�t�.��]�[B�X�ar D],�UC�����l|}�������/�QM�d��M?)r$�$�;r��3H^͈���x�M�¨�H�w�N��x&��Sc�q�=��n(<R��R�n�P�5�-�ŝ�I��]�����F|�A+ ��r�ō4�1�,fV�.���Ԣk$a&�A����p8�<c��U-���3䂖5`�Ġq�#����rI:��@� BPS=c[x!�Y�ةzTX��d��h�Uz�2w('��ɖO�Ay�)F�� s/fs� ���]t~�$�-�)E(ħ�k��C� �A����"��ɘ�'�h�vUT.q�HSVT��Qv��d��t�ϳz��N'��y���Kz�0F��U�-Hf��rz!?���K.U�Iz��2l��gE�w��b����]�,3�'�� Mo�`Ҝ�~�tu�h�
+����:(�fܮ� �(#qL�E ��j�*�L!i#߂.Zo���~��������:�3sߡ��9-}�AfFn�N%�#A��ը*�:l{�Ae-|y+�
+a�W.���5��#����W�s_@o4�*r������Zu1-Z�<����q��]8(��s��DSUUc��ր��j)G�O]����ؚ.i ��xԸ�s��U Z@�RН�X�º�m���-�� z���^�]�����3lv����i��
+r�6�p�~��)o�9�ָ��Fh�K���:1�z��"����T�)��}RS���r����6T>���!ҥ6�t�� g���t��--�2��X!]]��b6Kav���XJ�|�"id5أ_����"f���:w1 �9aqO\���@��<����֨2Va�|�5�B��j�l���>ζ�k}U�p��Y��{.[��Ш��!���i��{[���w|
+�jt�<n��JZ�`E�.*���b\�A���¥U��Ɲ�A�B y���6t��8�q><zh�����q9��dt/R��:�zd-�$�$.��?���˧6�*}��N�A.��B"�cx)z�M�
�\�5�3�{dz�B�-*MA!J
+?(�Xf��i�k�J��֞r�3�7�Va�n�h�
+�r
+J�7�N/�<PL����NA!�9��N8F�S�����-(Dm^�O�b&*rh�o��:�
+�sN��M��T�K���h�l8O��`0*ƛ���YA8[�؈J�$����*%��!�u��H��e�"%W;b����t�%@U�ȕ��@U!�9���4"S�Y<e�V�R��*fPq;=�FU�A�U,@U'7CV��S!�V!p�`��M2hW����
_E'��W�>�ew�`�* ]��xX��c���A�;�z��IT��T�U(pw3�=��!�zi±V���/%�g^h��-����B�"���+�W�%��u��nTT+����C1W���Y��Vv�U5�ʻ�Tʫ���:�58/��D���Oߟ�"1g�vkWi���D�U
+�I�_�>Q�UURX�A�g~�����uϮ,�(���J�a��-(<����E!��*�x��2�܆�jn_��!'���V�B�Hw�F��ah��QHVZء��uu:��J�c%�)�n�i<t��=�@�{��쬵����=����Y)F7�<�/x�sV����
+U�Ki�y���{V��G����iA��9U��Ӎ�R�UAZ�fS��Y�´_MQ�P�-�V�|,���H�t�QXb:��E�J�f�T�H
+����U [m��
+v7�����:�jo����u�Xh���J�����-�yԍi˚�D���r�
�@+O�����u��d�߃R����®L���9�x��j&�|�v�;��[ p�l+�Z��BV�c�� 5�Q
�rҎ��v����uF�\�bP�<��6cԕ.�T�UUs���f�D3C[.�°ə�w���rN�^��J2��.�����ɠ'K
+dHZOҀ�JR���S.�gp��(C��F�&"ΝA��N�������{�pj=��"����
y�f�$3-xvAYa/�p���
+홂�HWnұ������%�6Cـ^)��#�k�"�0���"C\X�Z}��^�U�h/���E�l���9ګFfT�x�j7U�^�L&BܴS*�����x��H��*�+�ժb�3���D��E8Ħ���=ӑ���G�������-�W%�������ú��<�3�W(=���AmP��&Ud�
FY
+k5CA]5/
���#�%��y��e@�a80��i�G�+��!L=ǝ��T�)Ѽ�v&�p0Q�?�H6���8�!�y��Nx'�P�7�n>`1��L�^O�GԖ��)0��iR�a�!7��A2w&��f�aR
�k<Kr��ݵ�����Y��j(<!��]u;��jӨp�6�t`�/��G^M7
+�F�2ZPxV͋�b`�8.�
+DW�N�Bg�ax��KTe/
� U���9+�����͞�yt���1��@�A�<Q^�u�>��d'�W�t�eN��v�;��}x.�C�㵉T�W��+Ȏeh?��^
+,d�ګ���;b>O���fV
�L�`��Sc�Ѷ�ò��8*4m;��Z�%C���
��)�JX���)���\�SF��@e��|��Q�D�$Vß2�`R�6���
+-?�^��(k�p/o`r2Kl�UYh���?����4Vp��4�b�{�)�۵�;+6G���ݠ@3�ُ�Ԍءf-ö>E�w�������U�f��K��;Gp�X�Ď
n��N�$<V����I�F���h�'C���N�4J�9�&��g�!i�����г�
l�r��A !�ɉ^����fd�#_���5G۵j�h�i�vⰞu�Ah�愥@�t��4���qf�t�lg?���5h������0�7�Y#�w��D�dށ�h�+�9yh��a��z;qeE��9U�|�5��;F���I�:}�5ϴriA��t�&ԜN"���%Gްf��CnX�\�jďNԻփ8ܝP!�t��ײqt�h�@�|h<Q�~�Pc�7���8�?�@3f5�;�A�� 4KZ�U��:����Ӹs�� 4G=WY@s4ONͰ�v^4�+�� %����}�8Ќ}4�m��e0�f�=�Ś�Vs�E���#͢��=�H3�qvU�O�:���է&Qf>X竝�MQf̴n��
+� t�T�5�U]6z�7����.@��ck���>�>>���а�-�Y
+$�L�Y>��d��F�Q�+��c���fˑ�� ��M3c���JϪ2�n!��ց��P�u��Q�4�]ɹ�_�!qfQ�t0�,B�`Ff9qd��:�l�L��ęE�4��4#}��3K�@4qf�-I��Y�Hl�͚��F�"D=�m4��q��4A�8Ǚ%Kݰf��l7ǚ�|U�/����Jk�t�c>b�B�}9�����ޒ�<6{36�9�v��x�`3�8ؼ
+���m�^)A�T7E�͒�}��Hj ����ͱ��G]�9{�7K �0,�θZE�d�ѥ�c'���s
+<�h�p�҈7��-���";�r�!�/��x���!�H
ֈ�C���A�B�;S�����������,9>U�*g/�g���3v�@U�Б[_B��$����81g!�b�����9Kz�w8�l=���*��k9AgjĘO��Lu7u8>l�11gh�ۆ8�.�
+8��:���@غ������B�gnԵb4��z1���7K��ͺd�5&O�����Y��Ď芦�X���F��S"���B9c�%��9V7WO}նf�;sRR!�,���q�v4��s��dž9�$��w�3ǔ���Ig �
�p�9V^i8�7�q�d��8���bΑ��
+9���
+G��Ҹch�s�9c�RcM1g�4��r�v�M�92�φ9˨��WM��n�9�1v�YDm6�P�]Ü!7)�s���b��#�܈fsl�����e�b��Qg�D��_t��u.c�b�s�����_YS�y@���cu,����UZ@�hC
+: �69)�!L�Y��(��9�'�B�p�9�t���H�Y�c�0�y,nrt�2�{�637VĜc&�k�3
+9髌
rG��hZ�t�:��j��N���v��d�]�v������}�;�J"�1˙���V��6$q2�t�O���h�������Y�B���30R�}�N�����U��Y�۱
+��zF��qY�PC�QH�٪�U�S�<c��鹜}Bu�!r�
+�E�~��
̠gLR�;�Ј���tQ���^�S�+��}�z"�pPUɱvID�ei?�]���f��>':�*�|,<�M�6�bMs�䱎b�
+;�M
+|�MǞ/��
+a3�� =ð�mȳo, ����"�� �g�q��Yth��c�u�s������6����`������AxPW�F@89L�ք#ϗZ� �Uz��
+=��w=�%n�s��WG�aG�[�(���|����m��� ���"��@d]�h�)�X\.�X�2ӎq�:q{��p�7�����������-�pvF�9f�V����7ORnv��p��C4��,�7G��B���
ߪ@�~��6OB��}l��9����B"-z�W��ۓos�u�hs�\�yn��38vH�9�p#G�j�͒�7�Y�d_���Y��ɷ9��շY�a�y���`&E]a8g
��|�/=��E
*� �l��
+9Kn���%}>c�9��\`Β��s�}��!�O�����w2!B�t_eC���*�b�<@�/�X�{1��nG*�,yns�|����LsΉp$1g�6�f��J��0���s��������q��Tq���K�
+�ne�d�1�YF�g���%��}����rɭ+F��o��\��}��d.�8��G�8�pk
�s˅Wː��XK�ؐ��i:UrN�n�r���6�f<���ۜO^6�6�r�����,�R���̉��t��z2�����6��"���$�8'�:e�3��;�<�6;�:��wt�3��,M�pt�y�6�fƎw�Y�jn��b<Q�4�d���ݵYzj2�����;��~ ��1^+�:B��Tޥg��s�k��PI58�1g]/�,_��C%��'�f�
�����lw�r�%뎨S�)�9˜mO�s^7(a�g��H�9'?"�P%iC�sZ�� ��c�sN,"�O��
q��ɳ9'�1q�Y($�������%(m\1&�N�s3��;�,9�
+3a�8�,��@��s�mۅ7K�`�i3܉7�U�s��"4v{����Ȳ�M�of�ތx��Se�X�'��O��B yÛs�04��a7!����B[�6�yU�Vm��`���o�ɑ/ky�3bQ�6�9'�މ7�Dt�x�7��fax�\�%�s��,��ӓ�s6C����ÊG�c؞�l���CO�ًp��ü��ݪ�<�o�����~M7!<�8ˢ�M1��V��xs�v;��c_ȉ7K����)�`�~D��:&���PhLq?W\��i`OF�s@�'$���Y���8�&��|1�� ��:�*���,%��7��e5a��ց�V�3/�:�4���^β����Y�֝(�G�Y^c��,a�6�95Vopsj�#A�Y�.gI�� mN�[G�����98���ڜ�u��fÿ́3Dm��E�ps�.�ps�v8R��H�xs2���f>d�x3s,�Y4r�7'��7�F�@�9�z;ޜ=��fl�,����7������f>��x��@o;�,c.@��͒�m�͉�hnN�ܜ:=] 7'�cp3�����d7�oN�*�xs�)����n�W��f!ܜ:g�fI�?Y�f��BQ��f����sj<�5�YD:*DM�9�g��d1؈7�pR{�r�z�(B���M��d�h�,��,�)4��(B�mhsZ�.�,��>��2��_T��6�}��F��G�9U:9�,Yh1mN���9U�I�Ay}��C�Ycsr��C��ڊ�D�9�g�'!ڞ��t�issNzI�������`��o<遳]�s7��ע;YD��|�rn0��fX�m���n�D����:ڜ���z�=ᆖ�_x�K=���Y����'�K�B�K�0X�f1����,�ݲbrܹ~���7!?�:g��P7[;V��;�GF.!�얈��LB��A����d��p�=%�b<�F�ܻ�+3glƈ,U�vQҊث��)���ޱ`[�v����˓�s�{l�����Mu��]�l��kU�&���!g��^P���z�rvc�0�l��cΒ�l�����y;_�u��^(�,K�9'Ӥ�t��'�m�;�f�2̢ʛ�36�O�ΗZUR*�AG��� ��*q<���"E,�Ytk��(tsw�Trg��fd�je�4�T�f��̇�Nv=����+�wǛ�]oC��B�Gc �ڛi�No���t!�MZ��g�����\�ȱ�6i33!ǟ'�2�(ٱ0��%�����C ?K ����},��K�P�
+?���+۾ S���A?I��y��/��Y�X���P~.�Wj?K��d?��2�3���?_��z�_�$���d~.�;�=ȝ�������C��M,��K%V�^+6/�����8��G�����:-� l@�BV.�qХ��-9x� �L�����El=�:���P,*��Ѕב�A�Lk�0h!$]�� ��c�.���A��u�A[/�A�`����n��X���[2�3�Ms�s���B����.�C��FU�$�"�>���i�yT�T�J� %���{=�� ��ʀ�KɻJ��Gd?��1sVv��ĠK���X�Ȼ�@h4����u]5_�31�W"��B�6�9(�|ƞyw}.
+���,�kC=V2!h���
+ZF�0.@�b.�Bo��.��.�-:]�*a蒈����>t�CZtD��60���%�3���oj����-�v,+�s�B�*�n�3
+�I$�z���,/C��n�%��a Z��� 842���:����q)6,D�Ke����K������@%]V,-�%GW �� ]^Oq�_T�C�Lv��0�����
+�!�c�\�X,�C������%]�
�
�&�a�R=x�JR��cġK�Aa�Ri���tx����%���
��*��Y�n�*�%��I��\�Q4o�]pkl�Yx����b&30��h�.ˉ�0t������B�8�z��vFmK�س����� C�
+�BJ|���Ԋ��FJ��t)�O�X�G�K�K���
+71�R��A�k� ����BK��*D��^#=����&�Y�O�'v&B���� ��B:�B�(�B���ͮH�R/5������#&.><ѯ���j����'���է���,�g�"%�u�s��$3�ah,`�-M"��uԂqt.�gZphy2q�ژ����1´Q�ԑ�b����:�(-IIT$�o����EV19"�3%Y�E�a�}`;�K���
+$:��#ѹ/�#�E�``���l7���Ħ�DK�Nu�S2�
+
�h}ց���z�Ѕ~-C:�}�жk0 �06��K���e�Ѕ!-v�%SJ�XE�L��a�g�b�144��-�Q�׆C���8���
+�.�c۪�O���@t1�-��ɍ��.Q�^����:-��������-@�<j���]�i�����k�.|k�8tt[�`�}��+�C:�πt2�q6���W�ʓ�T��D�e��p
+��4���YD���\s�BK�샃�XQ��-�15o�-^1�<�|GL����GZʠ�:ۛ8�����aЪB�lC�W���=�j@�ԚAЇ��P���Vl�,�>�?+=?�%O�ЉH���
+:�.�GZf��)��8]����R��/�l
+���
+�?i\X_^*����>��h�����]�Gl
���@ta�sК�z�_7+���Aw��;6��C6�J(Pa7��.�Q���%�c�r���7��K"�؉V(�����|��Φ�`nMQC�t�ϰ�'zˠ:,P륅TN�bK�^��r�vZ(v�Zh��:5@�nt�~#�4�h��D���T�H��5+-kO��4�^������`ŭ)C�uk�x/���R�;�Rǟs_n"��;Mm���^�Z���3��(T?�|��Ί�ğ�r ���]
-jW�Ӟ�����"�������{w<PX���m*��ۖ;]��D��x�D�)��M��?��<���<�k~!�~���)�!P����Sf� ϛ/N�Í©%}*/�~��G����v,�Ei�mɫ<��� 6h����b���
+�4���u��X��\/�ݹ�@��|e˿���+�DJ|���sq�FE킲NE��ې��#^h�G�RbЇ!Ak������b�g=]�N|�1j���#���9�hb���20�gW�3G�����O.�j6��Y���/'�R����s�O��y/�(�W��E����:��(��X���x'�:.�������������W���{����X�,�&olJX�4w��6��O���͊w=C�[������W)Zc�*�Po���.�;��uu��.��'�S]�`�(�EijF�_9� ��k�:�>�
�S��.,P��Q� ��Ⅻ�"�K,��f��NIl/�)��6��rii5��(���.���>��×[Hz=�(��C�i���)|,B���}e� >��Rnz�]#�^/ ��5���m��=F�t`%2yX�w��f=An�_V��_���khз�Wm1i��5Q<o��|����6F�p������:} �]>1��Y���+�X��h,���������>����s��E�[>iۻj\��~����Q����1%eɗ3�(����Q�)jG c1���2�w'�e���B���F�e�a��jIPs
+M#E,"E�"����2���Z�+[��(�x/��{ሙU�\��Y���c�[=%l�e��n!�����-Ă%r����ڴ6D�q�I��;#M#4|]0� )X��ʑEW�Q_'L-�asB����Lk��c.��W��P���9���'(�N���ZE��&��EU�*+�Ƀ��w6��h+�}�0Z��1}m*���*���_,�O�9o5<���ϻQ��ˇ�~����ؗ��=��5{�,;#����!Zs�n*K��D�)&b��"aE��y�.c�0��S�%e)�'1;�r��EѶ{�&[W~����H����Թ=�!�=��!�ku�3>��|L��c�����bծA���AIEm ���^֠8��kP��A�2}P.���p����7ķA����A)��E��XLmP���b'pP�L�v
�5m
� O�|��O��Aq�
�֠8��be��\8�Ay��GW�2'�`h]5�.�}����w���D��&�]�b�sڎ�
ϝoț����S/��m������ܮ�u���7~�Tm�.%W~���1VYf��m���"�aNha,4�����q۶em��y]��Ey)h߶�¿g�S߿�,O���ċ*'�k�1l��WO��U�G$>���'9�����Y�;6i��M*�}���5E�M!\k�*�c6�=��E�k0�MTHY��N��DeQ^
+z/\x��n|@8��dm�1�6��-�p�g��
+I�;�04���#Ŕt��dLRF�zC�7���}�|����<���c�"�Y����|��F��2-y�]���]�h˽Lv�j=�]�+�>2c���߁&@�7�\�5�b[�����������_�չ���ǚ[ߑ?����4��B���ȟQ��"V�#V�N�6��gsJ�z ��E0��)8-�6�5���H��>"!�|�$��G�KAO�.Ov�2G]�9��
+��?�L�jf@8*�{�����U���Ƶ��ٹ���v:|9�q$�P[s�(���I��(�������p#��U/�<6�.^d��<��J�h
���<�7��݇�y,�V{߲�e�EЦ[���7T�\9�!��,�Qmu�{���L�i�������Y���{�.7�IXj���bE�+��`X�2g�%
/d��i�E0aYX/҄�k]�b-[�R��KKѐ�KZ�����#PZ�H�? ./<����(.S%�S��n,~D��M~��d���<��x}�r[�&/�~RF bA�2�YߛZ��[�������c��[�^hWW�êe�~�����t#��IV ��Uy�l�c��V�ua ��|D"��a.�p
��0��_;���<�'�O�e������X���B�ƌ�K���1J��V.6�N�7J��w
+G�
+�y����{۪�}��PF %=���)��Q��^(���h�>}H+�S.��}U^|K~�|�з��o/C�.C߮C�^���}�}�}��2��2��:��e���з�з�зw��7M�}�>���)됇��bM�R�Lh>ԛ��W/"0^D`\D�_E�����m�@UO@��p�q��\��D�)+�E�����>$M<�C|b�;�������Ƅ\=->���%�m�@Zn0��/���S|�E����z}�m>�S#�2���4��\#�y���w�6�����'�/|��~B�c�o{��rys��^�l�B��D���$� .FY�J��a�.���-��۵�8%�V�K�"�D8�%bQ(V�Ką'��>}H"
+.�~X"�~fb�!�w��5i��K9|^m[4�2,�I�S\E�5i�z�4Xۖ4��K�(ip�K�Q�48��`��4\xix�Ӈ�a��I����1Jɟ/�����)�8��#;4��al��8������Q:��ZN����`�%FY�`Y+�X�w�m6�Ł�{�ɓ88�~�8$ܑ���`Pҏ����u�m�I���@���=��m(���z������V��M(aSJ��c�K��m�ٮm��t/�]{��Ӡ;�~�7����:�N�<�x �oy�@G�y�?塏�����1�r��� n�1I�#X��> /����cQ�-�,R=�|��I�����Q�U=)R�5��Y��<*6�$ r�|,�V~_Y��Ǣ��T��?" �0�r���^jzE)��w��X�G�wIA���(J��v��_RJկe�
+��19P�bؠ����$�4d�����?$֊�Q��,˺q�8�����[���i��'�|�A��eW��t�gŭ�/�p'=�S�@�>c9&A�^��)�r�,�y�K5������E��4�24H�;��p��� ��K��-�����^\� GW�m��æ��B���oɚ�(��E�����?V�b�j������=��h�V���:��}a�+K�O=]�ڸHP���g>���,C��r���)�=/z��o|�6�g=\DiQ���-r�w��}��%�O1^�1\�ÕO1��i��U�bM_��*��d�/>�6�g�ʧEq>-��(^�t�>nڽ�D������Ou`E��T���U����n��UNq>9Ż�E/>���O�F�����(�ON�9�;r�>��ɧÅ�B��i�>>�P�|Z$kբX�ź��v>Y��O���q�Ӣ8�i�h\�t�>��^X��|�U�oY�e�����m����8�͌�l3���U�m�ڗmŐ7۬���6+Uc�{�U�������F3��iF��e�ifU��f�z,����c�.�86cm1�k�$�kr��a8�v��A� b��z�7H�g�g�L�[��v��Dz�d�%����Oz�Ҏ�ni-���J߳ė�'"�l����S�/;je�����9�b-q�5����:[<�u6.�0��Ϝ xqqg��Y�,�5iQ�ًb=[E;�~g�j���]X�(ΣEZ-j.]���ٕ%�u��ɬ��'�P[�4�v>9�[��S�{^��տ��m��hf�GY|r���)ޑK�w��Of�,�[G�'3�Vaffm|Z$kբX�ź��v>y�Χ�F�,^��(ΧE��+���߭�g>���d���M��x�Y;���r���)�=/z���_|�6�g4�ޣ,>9�[��ȥ��u��'3Eѭ#瓙P�03�6>-��jQ��b�[E;��~��j��l\��(ΧEZ->]��[gO|��u���-�ٴ�N �g��U��E��A�{<��r��ЈFQ�죆��$����f���f�R��6c�L�P9ՠ�C2�W��,����z,��xq���qu��͌��3��ͤo�ͅ������"?�������+�Y`�Y��v�S�i'�Q��_'q]�R���/��t��}P�(E�<lz6�Q����l8��xQ�Q���Y�=#����p�y�HyLJ��F�5!t�z,��{_YضǢ��^(����W>}�
+�74��z�',���C#�F�"\����k�c:�A�=�@b��(YC��;X�x�a�2���t\ Jk8]-�X���Y�]���M�2�k/��ay����(�v�i�F�ˉ�GG�Wϧ��Gc26�=]9�jA�I�c��q+�� r�3
+}��([����on<vR�=�U��Y�J�c%k�R�X)�y"(�4�l�R���U߷Ll�c'i/V���+p>��4�bs(�>��t�5̹,Gj� ����8�\���e��tG����\r;��)m%�mKd��?������k��L���zW���3�����/h��ӌI�ͩ�B(�
����A���ů���ҁh����7����ׯ2s�Q��
�.C?������9�VCC�5�u4�XiAD���/�w�R�����~�]"9�R���3;2���r�U�[�ro�+d杕)�v�����N�o<iG��f�ē�bp��_�9�(85���QD��V����G!�)��ʒ��ay9h�
+�S^+ s�c�H�E�F�}�����g6��h+�}��h�k>b�J��:�D����'�_w}�&ʧ8���Q�e.�qZ^֔��X���������=�%�c�����e�x�S��Un/x��Xu�"�XI�����a�I�p��������[6�`��w��p��ۑߘ��biZe�Ai�B�g�̴F����)k��T}��bcd�V#V]�Y��"�'m���6Y��F�!2JYC�$"+8�=�F��ʯ�1D�5.�:.�e\�e\�˸��q�/�ү�ү��_ǥ��K��K��2.�u\�u\�u\�;��L��Łh���Dr�w��Z&O��
+��%�yE�خJ9��t2r�\�Ϭ��"a����
+�����p�y�HyLJ��FI�D�p+�p뽯,l�cQ�|/��{� b�����8�m��ր0��[I�%u��p���Q���;q�>��B[+x_��z�p�i�,����oe����f2yX�w��q0���[ό�mq��GL�e�j(�-��%y����]�Ʉ�}^]���Z5����V��.a�쩵�A�0��hq0���+��V+g�5bJˌ0G���#T�#Y S��x7�5��lg��0BG�ʜ
s��sC;�y6����%�O@]�^$6�������4�Bӵ�������ۢ���}1b�ؖT��+���Z��0j�Ƕ�Z��j:��L���H������R˱VR���V&��J�}���O�n��q�q�5$l�@�3uD݅-B~��e��K�X:;)c�g�NBdv�b'��p�
'k��c�h�ۈh�a|@���<
���O ���Mo#���}՚x�*�3k�اFMp�Y���v�55�ަ)�o��V�O
V����
���
+e�|nh�i �A6�݆9�q��)�8\�1䝋3:�!$yi�>
���e��O�n��p8�-��-�(���VnȈ�u��I�b��$I9s�+�oF�$X�`��N��e#���'����>Vg/<��2�O��ѹ��|<v�Ew�X��+^խ2�E�,B�C�ݳ4���B���Jmrk����ӤѦA�VyF ;%�����c�ڻg��=6���
+��]9��ʤ���ũq%ܴJүGg��������7����/�ixo:s����2o�\�2�Lc٧��w)�06�S�
^��"���=�����Y�#�J����)Zx����u
+���(�r+�{���g�|l��q�(
+ �#�R~��=��(�+��M|�DSm�7/^�?-����h��,�/7/�W\u#O�b7�������x
+endstream
+endobj
+4 0 obj
+ 22398
+endobj
+2 0 obj
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Font <<
+ /f-0-0 5 0 R
+ /f-1-0 6 0 R
+ /f-2-0 7 0 R
+ >>
+>>
+endobj
+8 0 obj
+<< /Type /Page
+ /Parent 1 0 R
+ /MediaBox [ 0 0 595.275586 841.889746 ]
+ /Contents 3 0 R
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources 2 0 R
+>>
+endobj
+10 0 obj
+<< /Length 11 0 R
+ /Filter /FlateDecode
+>>
+stream
+x�+�
+���
+endstream
+endobj
+11 0 obj
+ 13
+endobj
+9 0 obj
+<<
+>>
+endobj
+12 0 obj
+<< /Type /Page
+ /Parent 1 0 R
+ /MediaBox [ 0 0 595.275586 841.889746 ]
+ /Contents 10 0 R
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources 9 0 R
+>>
+endobj
+13 0 obj
+<< /Length 14 0 R
+ /Filter /FlateDecode
+ /Length1 7884
+>>
+stream
+x��Y XS���s� �aH@""e �Ȏ( ��,EAE��EK�nm�V�E[�L�����6Զ��j������}:]�����}�:s{;U�|�9IL�}f� ��rN��[�������Ukw�fr��(@��>�ڷ-6&�����㑎������'"�;ۚҬh���sY�x"�!���x��ٽ��A�x� ?�qSk�H�C����t7�o���m<ޏDZ�{�6�/ۇ�'�8����Z�N
+��X�����a%Ri��ҧ�M����F�����|�&����F`[���`�34$-���eN�5c�i�*X�bCT�t��!*P�s��(�㕪P�Ǵ��W�Ƙ��`,��{��whU�-"�S+N��p�Z�SK�����A��1f�5Τΰ�ͦx�T�W��6u�-�3���)��̒T�O��jh|�k5y�?�h�3���ĵ�?X:�Q,37��1�°S&M˝P�%bӄ6$�N�
+U�X1�g��jM6�]��r�-d<6g��s�dh�T��Tܧ.Rm��hUbV$� )Fo���jS�
���&���1�����ѩ�g�����&�.���E���*z�z7�~�����I��p�uXO�N�Nu���:
�Tz)G^!�3�舷�X�����@�]�i�L�\��V��e�>�:)��oQk�.:�`K�geb�꣓[����ٿ�Ɦ�}��7�/ZV�n{�c�bQ1���՞:�畑�nkt��[�G�K۶�8V�4o���h�3�ž����X��X��A����X�b�V"c�XeN㏕�uBsf������}9:�������C_�cU�ڍe��-��ty�����ən�Y��W�_U��s�==xǰ�F0C�s�1"\��Դ�T���f "ܛslB���P"�0q�ќ$�O���ILq��.�����h�[������'���tdG痻�"���Xbߵt�N#���[�d�wi����ެ=�K��+W���tUM���q|�u3 �>��W7�$�=� X��H��Q�RX7r[�L@�THd#��8Q@�z���Cq�2g7�T��G�R�ʊ{�v߹;JN����Zܰ��xY1�������چ7w�S��?��}l����9KJ:6U8x�k0�U�ϑo5��d�/���
E���P>̫^�,���� �%H��( ����KEJ�<�X������$������%і^��v��愌tsB�͚`�����_�.���������S�H��̎�jBD��&"�S��$Δ魃w�h}�m�t{Q�%�%m�4�6v��5�ߪY���\^���i�2x��BݪD��BЭp\T��l���2ux(�G���Ω�����xƊ����V$'W�⦖e��}OZyvvlrRlƐ��|��zGɰ��U�3g�3�x$C�3��
+�'I����e�H��8O��j IN��L��p�C��ֹ��)C�<(J�`��tl�b-f��ZH�qXO1��q��!͵��Ouu���7<~��T� ��?ܿ�j����as�g�\T]�N�p����ujlruѓ�+���H���7=��c3_�z�m��6A2}P��2���q�T���] 8rڀ
+���{�Ɉ�܃+Ĉ�'o~�P![��#jQo���9��+Q�JSc�����)Y���7�D�[����lao1��7�:�H��`��.�z%�������!��,�@#�UF�2��tr���˜����W#++S-Z�e<04z|�ƶ�%/�a�ѡ���������w��7O�.�).�ϭ[�.0D�w����V��ʫ �^��������|���H$������BZC�+�K��*a*d�|`�"/ݍ���L�[$��9N�D&����W&h����u8kh�h"�X��}`͇d��_tύ��9GN�d�p�ۅ��_n�y���@o��g���cn}�_I��P���O~R���]�za�3�&�nM��K�.�c�A�R�R�1b��@އ�B.�̊xB�z5}ਃd�@$��X֤em���2��������'�~�=ѻ�&�ȳ?���*���y�݉�k�S��t&��Q����N�V��ʼn�[��[q|��e"jB�L�)��(}R��4f1�a�j����7�tndφye[jv�y�{(ḱ삎������
+�X�A��ɋ6���g�SQoN�0�,l�Y4G�r��%�,�y�C�'������v�Q���H�C }>&=r$�M��~4$~�R�y����$i����\g~�k�=AK
+~E��YE<M��'��p��������ڴZ���������O��]���;l�X2�2S�ת{�:�i����i.��k��n���3�!��d��,)����,K�ɒ�i�~a�;�Ԣ� �h��S �=�'��}FD(e�/�i"
Np ���A04�ap)�~y�7p�Fb����io��ig�O��ӛ�RF�W�����ӭ�f�}n.��l'��md� ;�JH̠F�� ��g��T�U�]{�]���!��䳍�x�TN�
�<��cPc�:D!e���qE N��A�E!u�}5�ʿ���#S[�ț��;��Y������0�'�VL�/G����֯I���&�z`�o�p 1�!��QZ��Q���1u)���)4L����O/7˛�����n]�sqϮ�?�����������l������:��7<���͗W.n�.+nX\���!��=��
։hU(O^��`t�g
J���L�B�LHSo�s�6}<
��f��m��y��v--��{.r�����Լ��--� h}v��zq�����!���
=%�at��F
�XNN�3$�W{�*�[�3t���H�ԉ]�%�
a��6�g#X�ec����g(�[d����J�n#,��5?���/���ߛ��"��s���߹��V�k�e_��Z0�C��(o�A
+U�7V�������ȈRx��\�oE �I�
�q�ZT�h� ,G����V.8���\��E�&�lΣ~�v^�\���l[�e�����m�y�wUΙsb��pφfӼ��u-�_ �[ʋ��wU�4TU��f�.�[��pu}˕=�������o�^ǒ�)�K����,_�~��;���3�Ew����9���
�M��|QIYŚ�C�0>�����)J�Vt�n��=�f]xCJ�����7��6s�;��5����+n�@z.��~��yp�ɔ�w/���>,�WV���5���#ySSx/z_ ]d=���W1K�<� �碫��8��}��']�@����s�����h��5�;~L�Q��%��1�R�� �Y��f���zR�cV���Ä:(�P�:�ƙ�q�2m��E�MO)S�/�~�������w�:�����͛�e^*��H���D�'�E�Q*eZj���Q^m�� �R�'��t��@��0�W1Y3gk���f���2
)f�����8q�Ǿ�k�0HA�ŧ閾�⥼{��U�Ͻ�b���#X�� �n1�ƀ��W_���Qs��z-^�<k������?ټ7I����к�X��f��ز=?snWT"�;)�,x�j�%c�C����Ykʮ��c��X�}�ݺ��Ҟ�KL�������a݄F"6��-�������u@�c���3P���E�Z% `�=IOm�m�V�������������W{*�닛�U5���
����{���g�95ݹ��}{Unm����<���3���"�A�I�*�<Q�D��~a~ނt�Uu��
+��Q-�^0G,�k�Y��yi��*HEaA�|�$ϻ1��R"C��aQ�I��=-^9�
+P��Vo2����P�0z�D�]���٘��=�P���<6���VWw��~��~�&5��nth���V֭�n�mmYP߶���j��1%~ђ����jqϝ��cϽ�w���p;9u�dc�zg͖-;Ǝ�.j�?����G~�4���A���p�y�cE�A" ��M�`�U�����/J�_����=���ۊ�0gB*ȳS�+��0��'�1��T+��[����Īx���7���|����
+�����GM�'O4�t�{�����L;������Q��}��='����0>�L-�F�S����~%N����ߡ�t�Ul�8����&�2j��@�lX�]�����ޭ�S��ǡo�k���_��w����F~]�fנ�2��ΨȀ}��hU$&v\���-.s���
�Gb�+�#}�0GG�VN�2�z a H���/&R���1+tr<ǩ8�u�f�<]�q�m5��꾉�=�y����;lQ�V��T6�4o��:t�U-5w?�PYV֦6mN=������lw����b�gj���s~@3D���F�c��,�F�b���)�H�������^�9'�$��}���,}�d|d�b�U�?x�?�ff���Q���/�d�?��"�Y)���N���
+A%S!
h��z0 ��A8D@$D�����E�&H�U��b���n6��3|�?�6x��Kp��6��Z��<�a���4�!"���&�E֒�����(��
p
�`�Ij`F�Mꡓ���}�`ޅg�(���n�� ���5�OBJ�����)4�o��x�c�6m����E����*�����o<e��)���ݭG2~��^�m�"5����~
+v��L���t�[������>���4D�)p��ݷ e��R&�X��g�o|�ȍ�?�������m"-��X����X�`�gٿA>$ɰ���=� �Y V�=��J�[+f��wh�>f
+������~�~ ��N,�����Kb%{%�%?J�J�U�˾�#�I�R��8�Ee��^�;�L���s|&����;�����%j<"A,r&/�V8K����Cqg����: �
+endstream
+endobj
+14 0 obj
+ 4938
+endobj
+15 0 obj
+<< /Length 16 0 R
+ /Filter /FlateDecode
+>>
+stream
+x�]��j�0��>E���vA���x�j�1�B7Jt����
[���g�8IO�s��U��~2�b���LWoH�t]"���Y���\���!��-+]Z7LI]��#,.���ݓ�zzH�雷�Gw��S�W�u��BnY�4��>���W}!���}k�����!�/��6�P�%Z2��eֆ�vgJ�,\���p5 9�o�Ȑ��[�.Cx���M$�*@9(���*A
+T���G�AґW�#Ȁ8�F:p=B�i"�]#R¯��d��~�Z¯*A�S�.�O��ς��H��
+�+{�J�I�UL�+ف���Jt�����;���s$�4���_��}*�)쒂_ő�S�8P<9�hm��>���}�xX�nS::���y���x��6ݣ
+endstream
+endobj
+16 0 obj
+ 394
+endobj
+17 0 obj
+<< /Type /FontDescriptor
+ /FontName /HoratioDMed
+ /Flags 4
+ /FontBBox [ -136 -250 1094 898 ]
+ /ItalicAngle 0
+ /Ascent 946
+ /Descent -253
+ /CapHeight 898
+ /StemV 80
+ /StemH 80
+ /FontFile2 13 0 R
+>>
+endobj
+18 0 obj
+<< /Type /Font
+ /Subtype /CIDFontType2
+ /BaseFont /HoratioDMed
+ /CIDSystemInfo
+ << /Registry (Adobe)
+ /Ordering (Identity)
+ /Supplement 0
+ >>
+ /FontDescriptor 17 0 R
+ /W [0 [ 250 468 282 508 508 483 508 212 508 464 250 740 629 612 373 395 464 365 363 261 382 237 211 624 496 343 416 509 574 211 173 264 237 494 494 770 253 457 291 477 291 ]]
+>>
+endobj
+5 0 obj
+<< /Type /Font
+ /Subtype /Type0
+ /BaseFont /HoratioDMed
+ /Encoding /Identity-H
+ /DescendantFonts [ 18 0 R]
+ /ToUnicode 15 0 R
+>>
+endobj
+19 0 obj
+<< /Length 20 0 R
+ /Filter /FlateDecode
+ /Length1 2432
+>>
+stream
+x�uVLU�?�{_���_�>���WPF����0d�AF�y@T�u�VC;��F�jZ�,�4�6��+aY�
T�Ę�df�k�F��X�E��s_q]�����~�9����|����. ��s�h�����9�V��|�pnd��+����`��Q�"����ط��ٴw@l{1�{�n @=E��6Rd��y��q�u;��*�(����CGZ�V������#z<&.��$�l�~�b���_$���B`,VB�@v(��� ������ӂ�iAfZ����B���Σ�@���7t�a���o��+S�V��`BI(��tө���0e
ɠWG̓��%c
+��p�N�s�:�/+�>�nY�M��B�mJKMK��|�"�]i�>��X�ʷ����4��<܁��Z�{U��w�.~�ϏON^�d�'Ǒ�]S�M����>�����G�����i�O>7}��$�G\Gyi"�I���B�SO�5
Г�1EG�.BZVV�_�B����)_�ǷIj:���]�7��x�$�=��������[�U�w�$�v|T��� �qKY��1�t���5���(F���PABӎ��_���)7/�|�M%�%�շ��o/���M,�J��m�������yf����8���S�8�io�c^�?b_�뺷0�k��U>�g'��Լ�c�裔�����R��2��ák�Q�@r`LMPe��F�j�\`fC<(���"���/.��Y
+��?����wqSQ�w��&}t���:.�N�7C'ё���
yE���@�cIn�����*D/�%;/w���"�@~VQ~d_Uՙ��wVe�>���v�:x�lU�հ��ƕ)��H�\�w�eS�u:a��;�E�$|)A[+aJR<�a}^n��ˉқ�&ޘ潽C�#�?a�9�|`����V�͂]˵|�҄5�=^'CT'mătbBah��0��59^Լ�R���O}���p�Wd�$>oZj��,}����
+b���=�|ub���k����/ޤ���|������熶��b�{'{��|�/_G���:���m>w(tTۡ'��"D�g]�Q������L �.}Fؑ�Bqt��GD��������y7o���+� ^��/.����GM��o�!��L����� �A�H��UWV�
+++.X�!CV|�l�/�DZ�Z�L� x����V���a�S��J�<+�U�@l����z�H�y6��X�e�����"5�w�O�O�_��S�~jC&����Ā�4A4B8�t҉ĩ���j�N���EuR�P{գj��K-U]������#�=�_yM)QtyN���K��s�)�O� \�NMB�P@����\���!�^�g�����[�:�{��UR^Kc�Q�07a�C�)�d�ە�LtP�SY��������c���#�������J�˶�b��
F\�R~�Z,?�����K(䄍
+�-�j 9��1�F�P����G������1Ǩh������}���^Cf���G�f��0���'���m�ΝRN�l��~\�0�r{�J�� :6q(b� {�-!mo���
K0�#Ȥ��3�c�K4��V�}V��^�n��F��l&�۷VE�U��`If�L�n�������Q#�=�AZ���j���6-��+(`��z+��`��Q�!�!x*��,o~0^
4��w�M��%.����K���Ħxհ���k��t ��������9h����Z\�y�[�-�]�4���ս�ރ�����i������1*�
�;Nܺ�G�2˩R8���#����Pn�F�/�\f��dC1b���;�J�RK�^9{:��������A)?'
+endstream
+endobj
+20 0 obj
+ 1898
+endobj
+21 0 obj
+<< /Length 22 0 R
+ /Filter /FlateDecode
+>>
+stream
+x�]��n� ��<��ݡ"I�6��HS{�a�l@�ɐ@���#��Y���l�/��5:��Vv`�Fy���%B��6,/@i�v9 �x4w�pj�`Y]����
+�e{|b�߽B����KGG���
'42�4�p�
+�&&���VE]�um_�C(�T��
+g'$zaFdu��z��04�^����);��YvʛDE�sAt �@t$��J�g���Dg�J���2�sy�l�m�x;N�N�nMj���p�m��~P�3
+endstream
+endobj
+22 0 obj
+ 263
+endobj
+23 0 obj
+<< /Type /FontDescriptor
+ /FontName /Emblem
+ /Flags 4
+ /FontBBox [ -83 -210 1162 835 ]
+ /ItalicAngle 0
+ /Ascent 688
+ /Descent -215
+ /CapHeight 835
+ /StemV 80
+ /StemH 80
+ /FontFile2 19 0 R
+>>
+endobj
+24 0 obj
+<< /Type /Font
+ /Subtype /CIDFontType2
+ /BaseFont /Emblem
+ /CIDSystemInfo
+ << /Registry (Adobe)
+ /Ordering (Identity)
+ /Supplement 0
+ >>
+ /FontDescriptor 23 0 R
+ /W [0 [ 750 646 333 566 606 253 312 627 606 ]]
+>>
+endobj
+6 0 obj
+<< /Type /Font
+ /Subtype /Type0
+ /BaseFont /Emblem
+ /Encoding /Identity-H
+ /DescendantFonts [ 24 0 R]
+ /ToUnicode 21 0 R
+>>
+endobj
+25 0 obj
+<< /Length 26 0 R
+ /Filter /FlateDecode
+ /Length1 7972
+>>
+stream
+x��Yy|U���Nݮ�zOw�Iw���Y�B `�&� 2�h!t!�$�ąEI��(���B�-Bp".�̈"Ou���7�?�I����{��}�/��{�Vݳ}�|� ��#��oѲ+��o ����Z�z����K�8o �n_�bɲ���E��S��yIպş������g��/���IH\�
���K�&���~jŲUk�|X��������E�3�����]��'`_��[���WܱN�=�qMv��b��_�������u�y�����I^�ٞk�t��lO��ⷤ�-��<�_ ��_(m����Z�I(Y9�9�ǓLr^�.%�K��1��8�o�ޠ��7����>N�����q�^O��)P����^ѕ���1���T.�L&dI��z�v�H�R��Z�?������|�kq�O�U*H��x)D��M>�˦�L.
$| 9�2O7O?�0�8/i�o�^riʆ�
�
�
�Rڒ�|m��䶔I|���x���C�C�C�C�Cq��'�''�']'�N�Me���� ���Kϣ��p������Hɥ)��ݙD�îIIN_���������Wf]�7ݱjͼ�[w����%]�.�Y]6w�kr��-�z ����U3g��)+'��z�3At�e
+�)g�=q�ɲ��Z�n�Pk"�1
�9h�wJ��C�ݪ��zB�=g��?��BSЩ�٥��`'�ljMa)1�;&����/,���_��;nl^�|v���vZ�jrǏ��;�njHfV�;F�����H��u�dl��"��p���q�d�A-ɋ�.��Ͼ�^wIJ���8�2�B�_G�;�B�&0�!8�t!]�s7�[�{ܺ2[
+�W`�;��M_T`Bc�~�o��t�r`��Ic����=���J:Ey�r�l�
7�o���;Ն�?��`\�I<�.'r�����C\y��d(O���sV�t�'���V,�z$�[���V�W�6x��}�{��N<+C�?��#!"D�A�����u�$m^<uA��:��wʝմnj�*qD<�aC��vZ���aʹ�G_9��sJ�P��q�;�d�Ec0ڹ��8c���֖�$�B�HSP
+�<(q�%�p7z?jh�7dQ�ZZ�Z����x�,�|C|{<w5:<���Ӣ��ߢ�D��j`�쎗�{��YeW����O����6n����E�G�Ϝ�+z�����ϣz`�»h�8�,jm�s��0g�Q[k٭\��V1`����j��H]�HooH9}��RlAD%N���䐜�K����D�2'���l�Cv�.9Ks�d�q���P�����6��e���p�Ap;���>uS�{o@?X����T��q��vŃP�����JS4��b�s�1��b� H��&%� ��z3����C����d+�������A_�9@
+�=B�3+GUc.�q�1�ӃQ'����h�sc�S�OKr�܆��\ձDq�D���(�p�U�D���E�����K;K˭����d]��_�{r8�Pvnk��ں�i����?�(��%<�������*���o|��G;�I��(����ٲ��4-*|����E� �Q�r����}�j7G�Ң�2&��
+Hv�Ul߱c��;�}�|I�.P����o��/\���f"C�!及��]�2����
$��,)�x��o� 0�k}���&O����Ԥ <hS�+��1?U�Z8�ţ�'#��l\��|CZ{JJ���6p%�;�<&t�������m��Rդ�/w�I��p�������>���7^�<����ק��V�+�ܩ�ϋ�{H��!�Z����E������=��x���[g��دf��#� j6������\-9j�ὁ���V�|}�n�t4����mk�x���!� �&/_����/�����+��{Q/Y!�
+F���Z��Z�;�jZ�k��e�-!�1m�H>��H��O�a�ԭZ4����ꏖj��/�%5$�'�O�K�B/[z?����b;�U�<Q�~`���)_�YF-?�T-���ӑG~�z�9Db,_������-�e��V��I-G�$ @���b�q�4ba���0�r���J�� �~ա��H$�䈺�>��I�l�DSc��8�t��+��Kͺ�E�94���5�����ڰa�rj=O�0=�laDiP�P�+
C:����Iz[#�7j1Hg�����n*}^���/)�JJ�^C���r�H���b��~V�O�P\4}zQ�
#�OQ4}��F+�_�?^6��5&�E �I:��"��p��"q�B�zjݵq�K�/+�F���V4�ݑ�˔��[yT De���ɤyl��I�!�'~"~
$̖�
��g�u�O�����D�t��Lb��g�wIEB���O����(�����gd��n�f�����L�o��n�}z;+Z�H�Ʊ*C���4d3�2}�����b�H�H�Hc��8qd�H�Hq�ɺ��)���II�}���������������&G�U�*}���X�T��W%/M�����u�u���:_��.y]J����lNe��/Yd�/!c��?9��Jv��c5/���!j�Tq���r���~s癗�|F�F�X78�Φ�h�X��h�u����_r��Wk������h�+{����`�y��t��:-'�1����`��Q@���ӌ��L�Adj
+���dԊ���Dk�sf��[hr�R
��;�EWH�ċ�C��SD��I�)�0KX$�Q��|<sh�4��g�,m�.�4��K�����M�"��%�´�_��h֊k�kuk� h8?U�F�6v��OY��^8H�i�ڲFY��r �����<��A�c��{X=���&A
��h���Ia
3G�$� �@%Q0�7pFI�i��TM$�|�f�,��dԣ1G�Ѧ�Uk�t�5��XnvQ�7d�'��h��j���d6�,C�a�0-�V
�J�Z��������KUz&����9�
|v�~��~?��N�荰ʾ�":I������
+�\���u�8�c6��:N��d6�{���H9�4�0���4�˙=�s:p�f�j���z9�I���LN4p�f/&��=�b�4��F�B�}?��,�W,��L�-湤�t)]Ky��2Y��B0��R)����f��534��9�9�
+ƝQ�&,�&k�Z�.��_�Vi�i��"��0�!������_����dE���(��B��щ��_D�;T[��(t����h�����Տ��E2�9~�h����)���'�d�<I�ӂA��A�y�&�$��j��)�j�B���6kw�W/�>���$>���M���m�R�?M�+�NX^;;�,hA��VK4�zC�� ��DmWL��l��ån� ����F�C�?�o�����3ο��0n��O���������@-
�x���y��-3� ��7
<�e�T�����-mm[�tgn�]DF=N��jǽ�ڴХ��
+�a��R��`��:�E��\U�KK,������?2?^-�WD�C��S�����C�w?�\V֠��~J5Jߧ��_q����6U��Ouv|<TOW~��cM�r�g9���/7,��D�ٜ�
�I�����!�-1���JI�I*��j��sȸP����u�q��c�3�[��XF��ɵԾ�&�3�~���O~�O7��\x�
+�}K�S�u�o�Q�Q^R:�g�<�rAB�3h�8j����1�XØp�F��%A�LsجOuP-��N���D�6�p��T�+�a�S��z>�a&��?���>�ݭFMwqt�
W�F��ʩ
+?tD3�٣�o�V�f�[��&Y3�y�L[�}��Zk���>Y�d��:�6�^*�Z�[���ٗ
+�j�R�R�����Ѡ�"�D�S��v[��*����Å��Vh�(L��&�of�7�f��BX��W w��l+퍞=�C���T��=���:e(~i��5'���8g�;_?9�qB!�
+9�z���|��G�����-o����=�f�:�A����z7�sZ��&���[R�[�qof�5qnF�9�Ơ�Lz�IvfeF�Hlo��P��n���/���b�̗S��ꬵ�Y|mF'��:���b]�.G���������mh�U�n��Y�?��R
+c�ϼ��oشjes�~e�轕���{�r��/�G�_�����?[][}�z|�/��S&���'�[^x.3���w#����t�Ѳ;�K��r�*&��ǃ���c���-R����]��=.�n����2��X��E�)o(�br&��Rf ��7���&�P��VW�*���� �L 5r��$V]�H�w�d����MZ#�!F� �m�Ò�.�t���K�������O��
��d>�gd�%�^l12�R9)�ܵ�T��1n��g�+�`���,��n\2�f*�z�noo��q�2���5��W�?����ȋq�uA=;���0��yl8�gp���A��� �T��ܤ>����G����=�y������
�� N�g�an�PY�Ou�7���W7�zx#ً�_����)^T��g��wI��y��h^T������_���da�~�m��mn
�`^͈>��t�(�doǎ�So���(9�^��IΛI�a�o�B����^���G�I3Yɫz{�c1�m!{/ھ#�FWV�"�=���$�zǷ�L:�a1-E
9z&��z�˱�m|T��W���K��n�2�=��k���?HF���Q�Ixp��p��J�f��a��@5B=��w렀��xI9������8�L��s�
+��E
�Y`�'�si����M��?������_;��n\���Q��wn;Kh�4��OK�����,'8uF���̄�Co�P>�f����a�0>'e�L���o.�'I���5��7\9����Hc��;��J\�_a��%�����0V�����b|<Yɵ�)PDF���b E�.��ޟ����u��)8o$�}�fr
+ϭ��<ͯ�c�^R�
�aI�&�����_#�5���j~����ӝ�Pa�hBh��|6����~�:�r{�8!�Ɉ��nBt%���l�u:K������'B,+��
��a��U���sZ�Mv9�T����6��\����
+���k]��0�&�]��{#�z*�^
ét���z8��cz8���
��v��K
+���
+<���_��A��pH�g���6�S
�);4��B��0<��C�ľ0{B�}ax���O��kulo�
+�I�h.�ޔ�v+��.�=�]<���N��8o� v��|p�v4�m&h����`�}�l�۶�ض4��jd[m���ʲ�o}P�Z���A�<�Pv�-����l�[϶X`��7�U�Hh�|�5)���2��ln��?�=P���(��i�i��mJ�M��� ���q��a�/�u�=mp��a֨@C���pW����z�Ygfwڠ��m��ku�f�����w$��>�#V�C�a��V�f���(��+d���/ÖW²1PUi`UT5����.郥��R*����cP��/Y�Ɩ���_����� �EX�����r���m
+�)p�T���)0w<�*�+������v�)3n4��p��_'���0%��E6�
&��z���6�h� ��Mp��q66�ƍ��8��N��Jp��e��Aւ��qm��sؘi0���FO��Q:Vb������V6��GXX�FX���(fg�
++��av(�X�
B�hYH����B~^�y��y�|n���: ���цYN��,8�Q�l;d�|���̌|�yd�`��S@����f�cie��be�� K�B��'����1��,��N> K�@R#���D���@��S���g�Y�Ʒ��!N.�R�)��ng�J��l�n���l`�y�c`A�Z��$�3�on�3)`���(�����#*A�st��
�(X�h�b�z`��N�+��r:���(@;hx}3���#����?�:�
�?
+endstream
+endobj
+26 0 obj
+ 6009
+endobj
+27 0 obj
+<< /Length 28 0 R
+ /Filter /FlateDecode
+>>
+stream
+x�]�Mn�0���b��" ����tâ?*���b,Cܾ��J�Z����<_�Z�v�
/�ZY����L_��� �@�-��D�Kn�y����%şN����YM?ED�[�v�W�}_|j�����z�$�*Rܻr��ykG��'�k��aY�.�/�k5L�g���x6�d��+Ge�NEe�N�V���@Z��[k}�p�Ir<T�RO�t���2h9(����#"������Zh���A$A�Sz1(D� t-O9j���_&@�_ȃ����S�_j�_�@�_� �L�F��m,�=f.�ֺq�E�s�&<h~좙̖�_>z��
+endstream
+endobj
+28 0 obj
+ 336
+endobj
+29 0 obj
+<< /Type /FontDescriptor
+ /FontName /DejaVuSerif
+ /Flags 4
+ /FontBBox [ -769 -346 1679 1242 ]
+ /ItalicAngle 0
+ /Ascent 928
+ /Descent -235
+ /CapHeight 1242
+ /StemV 80
+ /StemH 80
+ /FontFile2 25 0 R
+>>
+endobj
+30 0 obj
+<< /Type /Font
+ /Subtype /CIDFontType2
+ /BaseFont /DejaVuSerif
+ /CIDSystemInfo
+ << /Registry (Adobe)
+ /Ordering (Identity)
+ /Supplement 0
+ >>
+ /FontDescriptor 29 0 R
+ /W [0 [ 600 513 319 401 591 644 478 640 602 640 560 644 319 390 317 390 685 564 722 564 752 672 765 1023 596 801 370 ]]
+>>
+endobj
+7 0 obj
+<< /Type /Font
+ /Subtype /Type0
+ /BaseFont /DejaVuSerif
+ /Encoding /Identity-H
+ /DescendantFonts [ 30 0 R]
+ /ToUnicode 27 0 R
+>>
+endobj
+1 0 obj
+<< /Type /Pages
+ /Kids [ 8 0 R 12 0 R ]
+ /Count 2
+>>
+endobj
+31 0 obj
+<< /Creator (cairo 1.8.0 (http://cairographics.org))
+ /Producer (cairo 1.8.0 (http://cairographics.org))
+>>
+endobj
+32 0 obj
+<< /Type /Catalog
+ /Pages 1 0 R
+>>
+endobj
+xref
+0 33
+0000000000 65535 f
+0000039841 00000 n
+0000022513 00000 n
+0000000015 00000 n
+0000022489 00000 n
+0000029394 00000 n
+0000032408 00000 n
+0000039687 00000 n
+0000022660 00000 n
+0000022987 00000 n
+0000022874 00000 n
+0000022965 00000 n
+0000023008 00000 n
+0000023224 00000 n
+0000028257 00000 n
+0000028281 00000 n
+0000028753 00000 n
+0000028776 00000 n
+0000029009 00000 n
+0000029548 00000 n
+0000031541 00000 n
+0000031565 00000 n
+0000031906 00000 n
+0000031929 00000 n
+0000032156 00000 n
+0000032557 00000 n
+0000038661 00000 n
+0000038685 00000 n
+0000039099 00000 n
+0000039122 00000 n
+0000039357 00000 n
+0000039913 00000 n
+0000040039 00000 n
+trailer
+<< /Size 33
+ /Root 32 0 R
+ /Info 31 0 R
+>>
+startxref
+40092
+%%EOF
1
0
Author: shevek
Date: 2008-12-05 17:22:07 +0100 (Fri, 05 Dec 2008)
New Revision: 984
Modified:
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceMessages.java
Log:
Translation improved
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceMessages.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceMessages.java 2008-12-05 16:21:02 UTC (rev 983)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceMessages.java 2008-12-05 16:22:07 UTC (rev 984)
@@ -2,7 +2,7 @@
public interface WorkspaceMessages {
String REGISTER_A_NEW_GROUP_TITLE = "Register a new Group";
- String MUST_BE_BETWEEN_3_AND_15 = "Must be between 3 and 15 lowercase characters. Can only contain occidental characters, numbers, and dashes";
- String NAME_IN_ALREADY_IN_USE = "This name in already in use, try with a different name.";
- String REGISTER_TO_CREATE_A_GROUP = "Sign in or register to create a group";
+ String MUST_BE_BETWEEN_3_AND_15 = "The name must be between 3 and 15 lowercase characters. It can only contain Western characters, numbers, and dashes";
+ String NAME_IN_ALREADY_IN_USE = "This name is already in use. Please try with a different name";
+ String REGISTER_TO_CREATE_A_GROUP = "Please, sign in or register to create a group";
}
1
0
Author: shevek
Date: 2008-12-05 17:21:02 +0100 (Fri, 05 Dec 2008)
New Revision: 983
Modified:
trunk/src/main/java/org/ourproject/kune/platf/client/PlatfMessages.java
Log:
Translation improved
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/PlatfMessages.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/PlatfMessages.java 2008-12-05 01:14:07 UTC (rev 982)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/PlatfMessages.java 2008-12-05 16:21:02 UTC (rev 983)
@@ -5,11 +5,11 @@
String MEMBERS_NOT_PUBLIC = "The members of this group are not public";
String REGISTER_TITLE = "Register";
String SIGN_IN_TITLE = "Sign in";
- String EMAIL_IN_USE = "This email in in use by other person, try with another.";
- String NAME_IN_USE = "This name in already in use, try with a different name.";
- String INCORRECT_NICKNAME_EMAIL_OR_PASSWORD = "Incorrect nickname/email or password";
+ String EMAIL_IN_USE = "This email address is being used by another user. Please, try with another one";
+ String NAME_IN_USE = "This name in already in use. Please try with a different name";
+ String INCORRECT_NICKNAME_EMAIL_OR_PASSWORD = "The nickname/email or password is incorrect";
String YOUR_HOMEPAGE = "Your homepage";
- String USER_DON_T_HAVE_A_HOMEPAGE = "This user don't have a homepage";
+ String USER_DON_T_HAVE_A_HOMEPAGE = "This user does not have a homepage";
String ENT_LOGO_SELECTOR_NORMAL_TITLE = "Logo";
String ENT_LOGO_SELECTOR_PERSON_TITLE = "Avatar";
String ENT_OPTIONS_GROUP_TITLE = "Group options";
1
0
05 Dec '08
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) {
1
0
Author: vjrj
Date: 2008-12-04 15:34:33 +0100 (Thu, 04 Dec 2008)
New Revision: 981
Modified:
trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java
Log:
Complete - task Logo/Avatar in SN
Complete - task Gallery action order problem
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java 2008-12-03 11:25:34 UTC (rev 980)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java 2008-12-04 14:34:33 UTC (rev 981)
@@ -122,7 +122,7 @@
return getHasLogo();
}
- public boolean isPersonalGroup() {
+ public boolean isPersonal() {
return groupType.equals(GroupType.PERSONAL);
}
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-03 11:25:34 UTC (rev 980)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java 2008-12-04 14:34:33 UTC (rev 981)
@@ -181,7 +181,7 @@
@Override
public SiteUserMenu create() {
final SiteUserMenuPresenter presenter = new SiteUserMenuPresenter($(Session.class),
- $(StateManager.class), $$(EntityOptions.class));
+ $(StateManager.class), $$(EntityOptions.class), $$(FileDownloadUtils.class));
final SiteUserMenuPanel panel = new SiteUserMenuPanel(presenter, $(WorkspaceSkeleton.class),
$(I18nUITranslationService.class));
presenter.init(panel);
@@ -346,7 +346,7 @@
$(I18nUITranslationService.class), $(StateManager.class), $(ImageUtils.class),
$(Session.class), $$(SocialNetworkServiceAsync.class), $$(GroupServiceAsync.class),
$$(GroupLiveSearcher.class), $(WsThemePresenter.class), $$(ChatEngine.class),
- $(GroupActionRegistry.class), $(ActionGroupSummaryToolbar.class));
+ $(GroupActionRegistry.class), $(ActionGroupSummaryToolbar.class), $$(FileDownloadUtils.class));
final GroupMembersSummaryView view = new GroupMembersSummaryPanel(presenter,
$(I18nUITranslationService.class), $(WorkspaceSkeleton.class), $(
ActionGroupSummaryToolbar.class).getView());
@@ -388,7 +388,7 @@
final ParticipationSummaryPresenter presenter = new ParticipationSummaryPresenter(
$(I18nUITranslationService.class), $(StateManager.class), $(ImageUtils.class),
$(Session.class), $$(SocialNetworkServiceAsync.class), $(WsThemePresenter.class),
- $(GroupActionRegistry.class), $(ActionParticipationToolbar.class));
+ $(GroupActionRegistry.class), $(ActionParticipationToolbar.class), $$(FileDownloadUtils.class));
final ParticipationSummaryView view = new ParticipationSummaryPanel(presenter,
$(I18nUITranslationService.class), $(WorkspaceSkeleton.class),
($(ActionParticipationToolbar.class).getView()));
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java 2008-12-03 11:25:34 UTC (rev 980)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java 2008-12-04 14:34:33 UTC (rev 981)
@@ -262,6 +262,10 @@
return (logo != null && logo.length > 0 && logoMime != null);
}
+ public boolean isPersonal() {
+ return getGroupType().equals(GroupType.PERSONAL);
+ }
+
public void setAdmissionType(final AdmissionType admissionType) {
this.admissionType = admissionType;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java 2008-12-03 11:25:34 UTC (rev 980)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java 2008-12-04 14:34:33 UTC (rev 981)
@@ -139,7 +139,7 @@
final Long groupId = group.getId();
final List<Group> adminInGroups = finder.findAdminInGroups(groupId);
// Don't show self user group
- if (group.getGroupType().equals(GroupType.PERSONAL)) {
+ if (group.isPersonal()) {
adminInGroups.remove(group);
}
// adminInGroups.remove(userLogged.getUserGroup());
@@ -162,7 +162,7 @@
socialNetData.setGroupRights(groupRights);
socialNetData.setUserParticipation(findParticipation(userLogged, group));
socialNetData.setGroupMembers(get(userLogged, group));
- if (group.getGroupType().equals(GroupType.PERSONAL)) {
+ if (group.isPersonal()) {
UserBuddiesData userBuddies = userManager.getUserBuddies(group.getShortName());
User userGroup = userManager.findByShortname(group.getShortName());
socialNetData.setUserBuddies(userBuddies);
@@ -327,7 +327,7 @@
}
private void throwGroupMemberException(final Group group) throws DefaultException {
- if (group.getGroupType().equals(GroupType.PERSONAL)) {
+ if (group.isPersonal()) {
throw new AlreadyUserMemberException();
} else {
throw new AlreadyGroupMemberException();
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java 2008-12-03 11:25:34 UTC (rev 980)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java 2008-12-04 14:34:33 UTC (rev 981)
@@ -19,7 +19,6 @@
*/
package org.ourproject.kune.platf.server.state;
-import org.ourproject.kune.platf.client.dto.GroupType;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.server.access.AccessRightsService;
import org.ourproject.kune.platf.server.content.ContentManager;
@@ -109,7 +108,7 @@
public StateNoContent createNoHome(User userLogged, String groupShortName) {
Group group = groupManager.findByShortName(groupShortName);
- assert (group.getGroupType().equals(GroupType.PERSONAL));
+ assert (group.isPersonal());
StateNoContent state = new StateNoContent();
state.setGroup(group);
state.setEnabledTools(groupManager.findEnabledTools(group.getId()));
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java 2008-12-03 11:25:34 UTC (rev 980)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java 2008-12-04 14:34:33 UTC (rev 981)
@@ -42,8 +42,9 @@
private final Images images;
private final VerticalPanel vp;
- public EntityHeaderPanel(final WorkspaceSkeleton ws, final Provider<FileDownloadUtils> dowloadProvider, Images images) {
- this.downloadProvider = dowloadProvider;
+ public EntityHeaderPanel(final WorkspaceSkeleton ws, final Provider<FileDownloadUtils> downloadProvider,
+ Images images) {
+ this.downloadProvider = downloadProvider;
this.images = images;
vp = new VerticalPanel();
vp.setWidth("100%");
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java 2008-12-03 11:25:34 UTC (rev 980)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java 2008-12-04 14:34:33 UTC (rev 981)
@@ -21,7 +21,6 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.dto.GroupType;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.themes.WsTheme;
@@ -77,7 +76,7 @@
view.setLogoImageVisible(true);
} else {
setLogoText(group.getLongName());
- if (group.getGroupType().equals(GroupType.PERSONAL)) {
+ if (group.isPersonal()) {
view.showDefUserLogo();
view.setLogoImageVisible(true);
} else {
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-03 11:25:34 UTC (rev 980)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java 2008-12-04 14:34:33 UTC (rev 981)
@@ -19,7 +19,7 @@
class EntityOptionPushButton extends IconLabel implements View {
public EntityOptionPushButton(String text, AbstractImagePrototype icon) {
- super(text, icon);
+ super(text, icon, false);
}
}
public static final String GROUP_OPTIONS_ERROR_ID = "k-gop-err-mess";
@@ -66,16 +66,18 @@
public void setGroupTitle() {
super.setTitle(i18n.t(PlatfMessages.ENT_OPTIONS_GROUP_TITLE));
- optionsButton.setTitle(i18n.t("Configure this group preferences"));
+ optionsButton.setText(i18n.t(PlatfMessages.ENT_OPTIONS_GROUP_TITLE));
+ // optionsButton.setTitle(i18n.t("Configure this group preferences"));
}
public void setPersonalTitle() {
super.setTitle(i18n.t(PlatfMessages.ENT_OPTIONS_USER_TITLE));
- optionsButton.setTitle(i18n.t("Configure your preferences"));
+ optionsButton.setText(i18n.t(PlatfMessages.ENT_OPTIONS_USER_TITLE));
+ // optionsButton.setTitle(i18n.t("Configure your preferences"));
}
private void createOptionsButton() {
- optionsButton = new EntityOptionPushButton(i18n.t("Configure"), images.emblemSystem());
+ optionsButton = new EntityOptionPushButton("", images.emblemSystem());
optionsButton.addClickListener(new ClickListener() {
public void onClick(Widget arg0) {
createAndShow();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPresenter.java 2008-12-03 11:25:34 UTC (rev 980)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPresenter.java 2008-12-04 14:34:33 UTC (rev 981)
@@ -14,7 +14,7 @@
public EntityOptionsPresenter(StateManager stateManager) {
stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
public void onEvent(StateAbstractDTO state) {
- if (state.getGroup().isPersonalGroup()) {
+ if (state.getGroup().isPersonal()) {
view.setPersonalTitle();
} else {
view.setGroupTitle();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPresenter.java 2008-12-03 11:25:34 UTC (rev 980)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPresenter.java 2008-12-04 14:34:33 UTC (rev 981)
@@ -66,7 +66,7 @@
private void setState() {
view.setUploadParams(session.getUserHash(), session.getCurrentStateToken().toString());
- if (session.getCurrentState().getGroup().isPersonalGroup()) {
+ if (session.getCurrentState().getGroup().isPersonal()) {
view.setPersonalGroupsLabels();
} else {
view.setNormalGroupsLabels();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java 2008-12-03 11:25:34 UTC (rev 980)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java 2008-12-04 14:34:33 UTC (rev 981)
@@ -82,7 +82,7 @@
StateAbstractDTO state = session.getCurrentState();
reset();
Collection<ToolSimpleDTO> toolCollection;
- if (state.getGroup().isPersonalGroup()) {
+ if (state.getGroup().isPersonal()) {
toolCollection = session.getUserTools();
} else {
toolCollection = session.getGroupTools();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPresenter.java 2008-12-03 11:25:34 UTC (rev 980)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPresenter.java 2008-12-04 14:34:33 UTC (rev 981)
@@ -25,6 +25,7 @@
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.MenuItem;
import org.ourproject.kune.platf.client.ui.MenuItemCollection;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
import org.ourproject.kune.workspace.client.options.EntityOptions;
import com.calclab.suco.client.ioc.Provider;
@@ -38,12 +39,14 @@
private final StateManager stateManager;
private final Session session;
private final Provider<EntityOptions> entityOptions;
+ private final Provider<FileDownloadUtils> downloadProvider;
public SiteUserMenuPresenter(final Session session, final StateManager stateManager,
- final Provider<EntityOptions> entityOptions) {
+ final Provider<EntityOptions> entityOptions, final Provider<FileDownloadUtils> downloadProvider) {
this.session = session;
this.stateManager = stateManager;
this.entityOptions = entityOptions;
+ this.downloadProvider = downloadProvider;
participateInGroups = new MenuItemCollection<GroupDTO>();
session.onUserSignIn(new Listener<UserInfoDTO>() {
public void onEvent(final UserInfoDTO userInfoDTO) {
@@ -77,12 +80,13 @@
}
private void addPartipation(final GroupDTO group) {
- participateInGroups.add(new MenuItem<GroupDTO>("images/group-def-icon.gif", group.getShortName(),
- new Listener<GroupDTO>() {
- public void onEvent(final GroupDTO param) {
- stateManager.gotoToken(group.getShortName());
- }
- }));
+ String logoImageUrl = group.hasLogo() ? downloadProvider.get().getLogoImageUrl(group.getStateToken())
+ : "images/group-def-icon.gif";
+ participateInGroups.add(new MenuItem<GroupDTO>(logoImageUrl, group.getShortName(), new Listener<GroupDTO>() {
+ public void onEvent(final GroupDTO param) {
+ stateManager.gotoToken(group.getShortName());
+ }
+ }));
}
private void onUserSignIn(final UserInfoDTO userInfoDTO) {
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-03 11:25:34 UTC (rev 980)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java 2008-12-04 14:34:33 UTC (rev 981)
@@ -32,7 +32,6 @@
import org.ourproject.kune.platf.client.actions.toolbar.ActionBuddiesSummaryToolbar;
import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
import org.ourproject.kune.platf.client.dto.AccessRolDTO;
-import org.ourproject.kune.platf.client.dto.GroupType;
import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
import org.ourproject.kune.platf.client.dto.UserBuddiesDataDTO;
import org.ourproject.kune.platf.client.dto.UserBuddiesVisibilityDTO;
@@ -94,7 +93,7 @@
}
protected void setState(StateAbstractDTO state) {
- if (state.getGroup().getGroupType().equals(GroupType.PERSONAL)) {
+ if (state.getGroup().isPersonal()) {
view.clear();
UserBuddiesDataDTO userBuddies = state.getUserBuddies();
if (state.getSocialNetworkData().isBuddiesVisible()) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-12-03 11:25:34 UTC (rev 980)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-12-04 14:34:33 UTC (rev 981)
@@ -29,7 +29,6 @@
import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
import org.ourproject.kune.platf.client.dto.AccessRolDTO;
import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.dto.GroupType;
import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.dto.LinkDTO;
import org.ourproject.kune.platf.client.dto.SocialNetworkDTO;
@@ -45,6 +44,7 @@
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.MenuItem;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.search.GroupLiveSearcher;
@@ -77,8 +77,8 @@
final Provider<GroupServiceAsync> groupServiceProvider,
final Provider<GroupLiveSearcher> liveSearcherProvider, final WsThemePresenter wsThemePresenter,
final Provider<ChatEngine> chatEngineProvider, final GroupActionRegistry groupActionRegistry,
- final ActionGroupSummaryToolbar toolbar) {
- super(i18n, stateManager, imageUtils, session, snServiceProvider, groupActionRegistry);
+ final ActionGroupSummaryToolbar toolbar, final Provider<FileDownloadUtils> downloadProvider) {
+ super(i18n, stateManager, imageUtils, session, snServiceProvider, groupActionRegistry, downloadProvider);
this.i18n = i18n;
this.stateManager = stateManager;
this.session = session;
@@ -229,7 +229,7 @@
}
private void setState(final StateAbstractDTO state) {
- if (state.getGroup().getGroupType().equals(GroupType.PERSONAL)) {
+ if (state.getGroup().isPersonal()) {
view.setVisible(false);
} else {
if (state.getSocialNetworkData().isMembersVisible()) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2008-12-03 11:25:34 UTC (rev 980)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2008-12-04 14:34:33 UTC (rev 981)
@@ -31,6 +31,7 @@
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;
import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.themes.WsTheme;
@@ -50,8 +51,9 @@
public ParticipationSummaryPresenter(final I18nUITranslationService i18n, final StateManager stateManager,
final ImageUtils imageUtils, final Session session,
final Provider<SocialNetworkServiceAsync> snServiceProvider, final WsThemePresenter wsThemePresenter,
- GroupActionRegistry groupActionRegistry, ActionParticipationToolbar actionParticipationToolbar) {
- super(i18n, stateManager, imageUtils, session, snServiceProvider, groupActionRegistry);
+ GroupActionRegistry groupActionRegistry, ActionParticipationToolbar actionParticipationToolbar,
+ final Provider<FileDownloadUtils> downloadProvider) {
+ super(i18n, stateManager, imageUtils, session, snServiceProvider, groupActionRegistry, downloadProvider);
adminCategory = new GridGroup("admin in:", " ", i18n.tWithNT("Administrate these groups",
"talking about a person"), false);
collabCategory = new GridGroup(i18n.t("and as collaborator in:"), " ", i18n.t("Collaborate in these groups"),
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-03 11:25:34 UTC (rev 980)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2008-12-04 14:34:33 UTC (rev 981)
@@ -26,9 +26,8 @@
import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
import org.ourproject.kune.platf.client.dto.AccessRolDTO;
import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.dto.GroupType;
+import org.ourproject.kune.platf.client.dto.SocialNetworkDataDTO;
import org.ourproject.kune.platf.client.dto.SocialNetworkRequestResult;
-import org.ourproject.kune.platf.client.dto.SocialNetworkDataDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
@@ -38,6 +37,7 @@
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.MenuItem;
import org.ourproject.kune.platf.client.ui.MenuItemCollection;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
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;
@@ -49,6 +49,8 @@
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;
@@ -69,22 +71,24 @@
protected ActionToolbarMenuDescriptor<StateToken> unJoin;
protected ActionToolbarButtonDescriptor<StateToken> participate;
+ private final Provider<FileDownloadUtils> downloadProvider;
public SocialNetworkPresenter(final I18nUITranslationService i18n, final StateManager stateManager,
final ImageUtils imageUtils, final Session session,
- final Provider<SocialNetworkServiceAsync> snServiceProvider, GroupActionRegistry groupActionRegistry) {
+ final Provider<SocialNetworkServiceAsync> snServiceProvider, GroupActionRegistry groupActionRegistry,
+ final Provider<FileDownloadUtils> downloadProvider) {
this.i18n = i18n;
this.stateManager = stateManager;
this.imageUtils = imageUtils;
this.session = session;
this.snServiceProvider = snServiceProvider;
+ this.downloadProvider = downloadProvider;
createButtons();
createMenuActions();
otherOperationsUsers = new MenuItemCollection<GroupDTO>();
otherLoggedOperationsUsers = new MenuItemCollection<GroupDTO>();
otherOperations = new MenuItemCollection<GroupDTO>();
otherLoggedOperations = new MenuItemCollection<GroupDTO>();
-
}
public void addGroupOperation(final MenuItem<GroupDTO> operation, final boolean mustBeLogged) {
@@ -187,29 +191,46 @@
private GridItem<GroupDTO> createDefMemberMenu(final GroupDTO group, final GridGroup gridGroup) {
final CustomMenu<GroupDTO> menu = new CustomMenu<GroupDTO>(group);
final String longName = group.getLongName();
- boolean isPersonal = group.getGroupType().equals(GroupType.PERSONAL);
- final String toolTip = i18n.t(isPersonal ? "User nickname: [%s]" : "Group short name: [%s]",
- group.getShortName());
- final String imageHtml = isPersonal ? imageUtils.getImageHtml(ImageDescriptor.personDef)
- : imageUtils.getImageHtml(ImageDescriptor.groupDefIcon);
+ boolean hasLogo = group.hasLogo();
+ final String toolTip = createTooltipWithLogo(group, hasLogo);
+ final String imageHtml = createLogoAvatar(group.getStateToken(), hasLogo, group.isPersonal(), ICOSIZE, 0);
final GridItem<GroupDTO> gridItem = new GridItem<GroupDTO>(group, gridGroup, group.getShortName(), imageHtml,
longName, longName, " ", longName, toolTip, menu);
- if (!isPersonal) {
+ if (!group.isPersonal()) {
menu.addMenuItemList(otherOperations);
}
- if (session.isLogged() && !isPersonal) {
+ if (session.isLogged() && !group.isPersonal()) {
menu.addMenuItemList(otherLoggedOperations);
}
- if (isPersonal) {
+ if (group.isPersonal()) {
menu.addMenuItemList(otherOperationsUsers);
}
- if (session.isLogged() && isPersonal) {
+ if (session.isLogged() && group.isPersonal()) {
menu.addMenuItemList(otherLoggedOperationsUsers);
}
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) {
+ return "<img hspace='" + hvspace + "' vspace='" + hvspace + "' align='left' style='width: " + size
+ + "px; height: " + size + "px;' src='" + downloadProvider.get().getLogoImageUrl(groupToken) + "'>";
+ } else {
+ return isPersonal ? imageUtils.getImageHtml(ImageDescriptor.personDef)
+ : imageUtils.getImageHtml(ImageDescriptor.groupDefIcon);
+ }
+ }
+
private void createMenuActions() {
gotoGroupMenuItem = new MenuItem<GroupDTO>("images/group-home.gif", i18n.t("Visit this group homepage"),
new Listener<GroupDTO>() {
1
0
r980 - in trunk/src/test/java/org/ourproject/kune: platf/integration/selenium workspace/client workspace/client/entityheader
by vjrj 03 Dec '08
by vjrj 03 Dec '08
03 Dec '08
Author: vjrj
Date: 2008-12-03 12:25:34 +0100 (Wed, 03 Dec 2008)
New Revision: 980
Added:
trunk/src/test/java/org/ourproject/kune/workspace/client/entityheader/
Removed:
trunk/src/test/java/org/ourproject/kune/workspace/client/entitylogo/
Modified:
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/ContentAddSeleniumTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java
trunk/src/test/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPresenterTest.java
Log:
svn problem renaming package
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/ContentAddSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/ContentAddSeleniumTest.java 2008-12-03 11:17:42 UTC (rev 979)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/ContentAddSeleniumTest.java 2008-12-03 11:25:34 UTC (rev 980)
@@ -2,7 +2,7 @@
import org.junit.Test;
import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.workspace.client.entitylogo.EntityTextLogo;
+import org.ourproject.kune.workspace.client.entityheader.EntityTextLogo;
public class ContentAddSeleniumTest extends KuneSeleniumTestHelper {
@Test
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java 2008-12-03 11:17:42 UTC (rev 979)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java 2008-12-03 11:25:34 UTC (rev 980)
@@ -4,7 +4,7 @@
import java.io.IOException;
import org.junit.Test;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeaderView;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeaderView;
import org.ourproject.kune.workspace.client.options.EntityOptionsPanel;
import org.ourproject.kune.workspace.client.options.logo.EntityOptionsLogoPanel;
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java 2008-12-03 11:17:42 UTC (rev 979)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java 2008-12-03 11:25:34 UTC (rev 980)
@@ -6,7 +6,7 @@
import org.junit.Test;
import org.ourproject.kune.platf.client.dto.GroupType;
import org.ourproject.kune.workspace.client.WorkspaceMessages;
-import org.ourproject.kune.workspace.client.entitylogo.EntityTextLogo;
+import org.ourproject.kune.workspace.client.entityheader.EntityTextLogo;
import org.ourproject.kune.workspace.client.newgroup.NewGroupPanel;
import org.ourproject.kune.workspace.client.site.SiteToken;
Copied: trunk/src/test/java/org/ourproject/kune/workspace/client/entityheader (from rev 979, trunk/src/test/java/org/ourproject/kune/workspace/client/entitylogo)
Property changes on: trunk/src/test/java/org/ourproject/kune/workspace/client/entityheader
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: trunk/src/test/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPresenterTest.java 2008-12-03 11:17:42 UTC (rev 979)
+++ trunk/src/test/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPresenterTest.java 2008-12-03 11:25:34 UTC (rev 980)
@@ -1,4 +1,4 @@
-package org.ourproject.kune.workspace.client.entitylogo;
+package org.ourproject.kune.workspace.client.entityheader;
import org.junit.Before;
import org.junit.Test;
@@ -8,6 +8,8 @@
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeaderPresenter;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeaderView;
import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
public class EntityLogoPresenterTest {
1
0
Author: vjrj
Date: 2008-12-03 12:17:42 +0100 (Wed, 03 Dec 2008)
New Revision: 979
Added:
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeader.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityTextLogo.java
Removed:
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogo.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoSelector.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoSelectorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoSelectorPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoSelectorView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/
Modified:
trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/nohomepage/NoHomePagePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPresenter.java
Log:
Complete - task NewGroup -> Close --> don't restore state
Complete - task Gallery action order problem
EntityLogo renamed to EntityHeader
Modified: trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -58,6 +58,6 @@
public void onModuleLoadCont() {
Suco.install(new KuneCoreModule(), new KuneRegistryModule(), new KunePlatformModule(),
new KuneWorkspaceModule(), new EmiteUIModule(), new DocumentClientModule(), new BlogClientModule(),
- new WikiClientModule(), new ChatClientModule(), new GalleryClientModule(), new KuneModule());
+ new WikiClientModule(), new GalleryClientModule(), new ChatClientModule(), new KuneModule());
}
}
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -38,7 +38,7 @@
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
import org.ourproject.kune.workspace.client.editor.TextEditor;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeader;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import com.calclab.suco.client.ioc.Provider;
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -46,7 +46,7 @@
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
import org.ourproject.kune.workspace.client.editor.TextEditor;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeader;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -38,7 +38,7 @@
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
import org.ourproject.kune.workspace.client.editor.TextEditor;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeader;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import com.calclab.suco.client.ioc.Provider;
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -46,7 +46,7 @@
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
import org.ourproject.kune.workspace.client.editor.TextEditor;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeader;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -37,7 +37,7 @@
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
import org.ourproject.kune.workspace.client.editor.TextEditor;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeader;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import com.calclab.suco.client.ioc.Provider;
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-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -46,7 +46,7 @@
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
import org.ourproject.kune.workspace.client.editor.TextEditor;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeader;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
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-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -43,9 +43,9 @@
import org.ourproject.kune.platf.client.ui.rate.RatePanel;
import org.ourproject.kune.platf.client.ui.rate.RatePresenter;
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeader;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeaderPanel;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeaderPresenter;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeaderPanel;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeaderPresenter;
import org.ourproject.kune.workspace.client.i18n.I18nTranslator;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.licensefoot.EntityLicensePanel;
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -37,7 +37,7 @@
import org.ourproject.kune.platf.server.domain.BasicMimeType;
import org.ourproject.kune.platf.server.domain.Group;
import org.ourproject.kune.platf.server.manager.GroupManager;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeaderView;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeaderView;
import com.google.inject.Inject;
import com.wideplay.warp.persist.TransactionType;
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -38,7 +38,7 @@
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
import org.ourproject.kune.workspace.client.editor.TextEditor;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeader;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import com.calclab.suco.client.ioc.Provider;
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -46,7 +46,7 @@
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
import org.ourproject.kune.workspace.client.editor.TextEditor;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeader;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -33,7 +33,7 @@
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
import org.ourproject.kune.workspace.client.editor.TextEditor;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeader;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.site.Site;
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-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -61,6 +61,7 @@
});
setWidget(imgResized);
attach();
+ Image.prefetch(imageUrl);
}
private void setDefStyle(final Widget widget) {
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader (from rev 973, trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo)
Property changes on: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeader.java (from rev 978, trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityHeader.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityHeader.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeader.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -0,0 +1,37 @@
+/*
+ *
+ * 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.workspace.client.entityheader;
+
+import org.ourproject.kune.platf.client.View;
+
+public interface EntityHeader {
+
+ void addWidget(View widget);
+
+ /**
+ * Refresh the logo from the group info in the client session
+ */
+ void refreshGroupLogo();
+
+ /**
+ * Reload the logo from the group reloaded from the server
+ */
+ void reloadGroupLogoImage();
+
+}
\ No newline at end of file
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java (from rev 978, trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityHeaderPanel.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityHeaderPanel.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -0,0 +1,117 @@
+/*
+ *
+ * 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.workspace.client.entityheader;
+
+import java.util.Date;
+
+import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.services.Images;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.themes.WsTheme;
+
+import com.calclab.suco.client.ioc.Provider;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+public class EntityHeaderPanel extends HorizontalPanel implements EntityHeaderView {
+
+ private final Provider<FileDownloadUtils> downloadProvider;
+ private final EntityTextLogo entityTextLogo;
+ private final Images images;
+ private final VerticalPanel vp;
+
+ public EntityHeaderPanel(final WorkspaceSkeleton ws, final Provider<FileDownloadUtils> dowloadProvider, Images images) {
+ this.downloadProvider = dowloadProvider;
+ this.images = images;
+ vp = new VerticalPanel();
+ vp.setWidth("100%");
+ super.setWidth("100%");
+ vp.setHorizontalAlignment(ALIGN_RIGHT);
+ entityTextLogo = new EntityTextLogo();
+ add(entityTextLogo);
+ add(vp);
+ ws.addToEntityMainHeader(this);
+ }
+
+ public void addWidget(View view) {
+ Widget widget = (Widget) view;
+ vp.add(widget);
+ vp.setCellWidth(widget, "100%");
+ }
+
+ public void reloadImage(GroupDTO group) {
+ entityTextLogo.setLogoImage(downloadProvider.get().getLogoImageUrl(group.getStateToken()) + "&nocache="
+ + new Date().getTime());
+ }
+
+ public void setFullLogo(final StateToken stateToken, final boolean clipped) {
+ clear();
+ final String imageUrl = downloadProvider.get().getImageUrl(stateToken);
+ Image logo;
+ if (clipped) {
+ logo = new Image(imageUrl, 0, 0, LOGO_ICON_DEFAULT_WIDTH, LOGO_ICON_DEFAULT_HEIGHT);
+ } else {
+ logo = new Image(imageUrl);
+ logo.setWidth("" + LOGO_ICON_DEFAULT_WIDTH);
+ logo.setHeight("" + LOGO_ICON_DEFAULT_HEIGHT);
+ }
+ add(logo);
+ }
+
+ public void setLargeFont() {
+ entityTextLogo.setLargeFont();
+ }
+
+ public void setLogoImage(StateToken stateToken) {
+ entityTextLogo.setLogoImage(downloadProvider.get().getLogoImageUrl(stateToken));
+ }
+
+ public void setLogoImageVisible(boolean visible) {
+ entityTextLogo.setLogoVisible(visible);
+ }
+
+ public void setLogoText(final String groupName) {
+ entityTextLogo.setLogoText(groupName);
+ }
+
+ public void setMediumFont() {
+ entityTextLogo.setMediumFont();
+ }
+
+ public void setSmallFont() {
+ entityTextLogo.setSmallFont();
+ }
+
+ public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
+ if (oldTheme != null) {
+ entityTextLogo.removeStyleDependentName(oldTheme.toString());
+ }
+ entityTextLogo.addStyleDependentName(newTheme.toString());
+ }
+
+ public void showDefUserLogo() {
+ entityTextLogo.setLogoImage(images.personAvatarDef());
+ }
+}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java (from rev 978, trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityHeaderPresenter.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityHeaderPresenter.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -0,0 +1,100 @@
+/*
+ *
+ * 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.workspace.client.entityheader;
+
+import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
+import org.ourproject.kune.platf.client.dto.GroupType;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.themes.WsTheme;
+import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+
+import com.calclab.suco.client.listener.Listener2;
+
+public class EntityHeaderPresenter implements EntityHeader {
+ int GROUP_MEDIUM_NAME_LIMIT_SIZE = 90;
+ int GROUP_LARGE_NAME_LIMIT_SIZE = 20;
+
+ private EntityHeaderView view;
+ private final Session session;
+
+ public EntityHeaderPresenter(final StateManager stateManager, final WsThemePresenter theme, final Session session) {
+ this.session = session;
+
+ stateManager.onGroupChanged(new Listener2<String, String>() {
+ public void onEvent(final String oldGroup, final String newGroup) {
+ setGroupLogo(session.getCurrentState().getGroup());
+ }
+ });
+ theme.onThemeChanged(new Listener2<WsTheme, WsTheme>() {
+ public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
+ view.setTheme(oldTheme, newTheme);
+ }
+ });
+ }
+
+ public void addWidget(View widget) {
+ view.addWidget(widget);
+ }
+
+ public void init(final EntityHeaderView view) {
+ this.view = view;
+ }
+
+ public void refreshGroupLogo() {
+ setGroupLogo(session.getCurrentState().getGroup());
+ }
+
+ public void reloadGroupLogoImage() {
+ view.reloadImage(session.getCurrentState().getGroup());
+ }
+
+ void setGroupLogo(final GroupDTO group) {
+ final ContentSimpleDTO groupFullLogo = group.getGroupFullLogo();
+ if (groupFullLogo != null) {
+ view.setFullLogo(groupFullLogo.getStateToken(), true);
+ } else if (group.hasLogo()) {
+ setLogoText(group.getLongName());
+ view.setLogoImage(group.getStateToken());
+ view.setLogoImageVisible(true);
+ } else {
+ setLogoText(group.getLongName());
+ if (group.getGroupType().equals(GroupType.PERSONAL)) {
+ view.showDefUserLogo();
+ view.setLogoImageVisible(true);
+ } else {
+ view.setLogoImageVisible(false);
+ }
+ }
+ }
+
+ void setLogoText(String name) {
+ int length = name.length();
+ if (length <= GROUP_LARGE_NAME_LIMIT_SIZE) {
+ view.setLargeFont();
+ } else if (length <= GROUP_MEDIUM_NAME_LIMIT_SIZE) {
+ view.setMediumFont();
+ } else {
+ view.setSmallFont();
+ }
+ view.setLogoText(name);
+ }
+}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderView.java (from rev 978, trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityHeaderView.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityHeaderView.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderView.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -0,0 +1,57 @@
+/*
+ *
+ * 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.workspace.client.entityheader;
+
+import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.workspace.client.themes.WsTheme;
+
+public interface EntityHeaderView {
+
+ int LOGO_ICON_DEFAULT_HEIGHT = 60;
+ int LOGO_ICON_DEFAULT_WIDTH = 468;
+
+ int LOGO_ICON_MIN_HEIGHT = 28;
+ int LOGO_ICON_MIN_WIDTH = 468;
+
+ String LOGO_FORM_FIELD = "k-elogov-ff";
+
+ void addWidget(View view);
+
+ void reloadImage(GroupDTO group);
+
+ void setFullLogo(StateToken stateToken, boolean clipped);
+
+ void setLargeFont();
+
+ void setLogoImage(StateToken stateToken);
+
+ void setLogoImageVisible(boolean visible);
+
+ void setLogoText(final String groupName);
+
+ void setMediumFont();
+
+ void setSmallFont();
+
+ void setTheme(final WsTheme oldTheme, WsTheme newTheme);
+
+ void showDefUserLogo();
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogo.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogo.java 2008-11-30 23:11:28 UTC (rev 973)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogo.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -1,33 +0,0 @@
-/*
- *
- * 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.workspace.client.entitylogo;
-
-public interface EntityLogo {
-
- /**
- * Refresh the logo from the group info in the client session
- */
- void refreshGroupLogo();
-
- /**
- * Reload the logo from the group reloaded from the server
- */
- void reloadGroupLogoImage();
-
-}
\ No newline at end of file
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java 2008-11-30 23:11:28 UTC (rev 973)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPanel.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -1,268 +0,0 @@
-/*
- *
- * 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.workspace.client.entitylogo;
-
-import java.util.Date;
-
-import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.services.Images;
-import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
-import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
-
-import com.calclab.suco.client.ioc.Provider;
-import com.google.gwt.user.client.ui.AbstractImagePrototype;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.SimplePanel;
-import com.google.gwt.user.client.ui.VerticalPanel;
-import com.google.gwt.user.client.ui.Widget;
-
-public class EntityLogoPanel extends SimplePanel implements EntityLogoView {
- class EntityTextLogo extends VerticalPanel {
-
- private static final String _100 = "100%";
- private static final String LOGO_MEDIUM_FONT_STYLE = "k-elogo-l-m";
- private static final String LOGO_SMALL_FONT_STYLE = "k-elogo-l-s";
- private static final String LOGO_LARGE_FONT_STYLE = "k-elogo-l-l";
- private final Label logoLabel;
- private final Label putYourLogoHL;
- private final HorizontalPanel putYourLogoHP;
- private final Image logoImage;
-
- public EntityTextLogo(final Provider<EntityLogoSelector> entityLogoSelectorProvider) {
- // Initialize
- super();
- HorizontalPanel generalHP = new HorizontalPanel();
- VerticalPanel logoTextVP = new VerticalPanel();
- logoImage = new Image();
- logoLabel = new Label();
- final Label expandCell = new Label("");
- putYourLogoHP = new HorizontalPanel();
- putYourLogoHL = new Label();
-
- logoImage.ensureDebugId(LOGO_IMAGE);
- logoLabel.ensureDebugId(LOGO_NAME);
- putYourLogoHL.ensureDebugId(PUT_YOUR_LOGO_LINK);
-
- // Layout
- add(generalHP);
- generalHP.add(logoImage);
- generalHP.add(logoTextVP);
- logoTextVP.add(logoLabel);
- logoTextVP.add(putYourLogoHP);
- putYourLogoHP.add(expandCell);
- putYourLogoHP.add(putYourLogoHL);
-
- // Set properties
-
- setPutYourLogo();
- expandCell.setStyleName("k-elogop-expand");
- putYourLogoHL.setStyleName("k-elogo-plink");
- putYourLogoHL.addStyleName("kune-pointer");
- putYourLogoHL.addClickListener(new ClickListener() {
- public void onClick(final Widget sender) {
- entityLogoSelectorProvider.get().show();
- }
- });
- generalHP.setWidth(_100);
- generalHP.setHeight(_100);
- generalHP.setCellWidth(logoTextVP, _100);
- generalHP.setCellHeight(logoTextVP, _100);
- logoTextVP.setWidth(_100);
- logoTextVP.setCellWidth(logoLabel, _100);
- super.setVerticalAlignment(ALIGN_MIDDLE);
- logoTextVP.setVerticalAlignment(ALIGN_MIDDLE);
- generalHP.setVerticalAlignment(ALIGN_MIDDLE);
- logoTextVP.setCellWidth(putYourLogoHP, _100);
- logoTextVP.setHeight(_100);
- expandCell.setWidth(_100);
- putYourLogoHP.setCellWidth(expandCell, _100);
- setStylePrimaryName("k-entitytextlogo");
- addStyleName("k-entitytextlogo-no-border");
- logoImage.setVisible(false);
- setLogoText("");
- }
-
- public void setChangeYourAvatarText() {
- putYourLogoHL.setText(i18n.t("Change Your Avatar"));
- }
-
- public void setChangeYourLogo() {
- putYourLogoHL.setText(i18n.t("Change Your Logo"));
- }
-
- public void setLargeFont() {
- resetFontSize();
- logoLabel.addStyleName(LOGO_LARGE_FONT_STYLE);
- }
-
- public void setLogoImage(AbstractImagePrototype imageProto) {
- imageProto.applyTo(logoImage);
- }
-
- public void setLogoImage(final String url) {
- Image.prefetch(url);
- logoImage.setUrl(url);
- }
-
- public void setLogoText(final String text) {
- logoLabel.setText(text);
- }
-
- public void setLogoVisible(final boolean visible) {
- logoImage.setVisible(visible);
- }
-
- public void setMediumFont() {
- resetFontSize();
- logoLabel.addStyleName(LOGO_MEDIUM_FONT_STYLE);
- }
-
- public void setPutYourAvatarText() {
- putYourLogoHL.setText(i18n.t("Put Your Avatar Here"));
- }
-
- public void setPutYourLogo() {
- putYourLogoHL.setText(i18n.t("Put Your Logo Here"));
- }
-
- public void setPutYourLogoVisible(final boolean visible) {
- putYourLogoHP.setVisible(visible);
- }
-
- public void setSmallFont() {
- resetFontSize();
- logoLabel.addStyleName(LOGO_SMALL_FONT_STYLE);
- }
-
- private void resetFontSize() {
- logoLabel.removeStyleName(LOGO_LARGE_FONT_STYLE);
- logoLabel.removeStyleName(LOGO_SMALL_FONT_STYLE);
- logoLabel.removeStyleName(LOGO_MEDIUM_FONT_STYLE);
- }
- }
- public static final String LOGO_NAME = "k-elogop-ln";
- public static final String LOGO_IMAGE = "k-elogop-image";
- public static final String PUT_YOUR_LOGO_LINK = "k-elogop-pyll";
-
- private final Provider<FileDownloadUtils> downloadProvider;
- private final Provider<EntityLogoSelector> entityLogoSelectorProvider;
- private EntityTextLogo entityTextLogo;
- private final I18nTranslationService i18n;
- private final Images images;
-
- public EntityLogoPanel(final I18nTranslationService i18n, final WorkspaceSkeleton ws,
- final Provider<FileDownloadUtils> dowloadProvider,
- final Provider<EntityLogoSelector> entityLogoSelectorProvider, Images images) {
- this.i18n = i18n;
- this.downloadProvider = dowloadProvider;
- this.entityLogoSelectorProvider = entityLogoSelectorProvider;
- this.images = images;
- ws.addToEntityMainHeader(this);
- }
-
- public void reloadImage(GroupDTO group) {
- getEntityTextLogo().setLogoImage(
- downloadProvider.get().getLogoImageUrl(group.getStateToken()) + "&nocache=" + new Date().getTime());
- }
-
- public void setChangeYourAvatarText() {
- getEntityTextLogo().setChangeYourAvatarText();
- }
-
- public void setChangeYourLogoText() {
- getEntityTextLogo().setChangeYourLogo();
- }
-
- public void setFullLogo(final StateToken stateToken, final boolean clipped) {
- clear();
- final String imageUrl = downloadProvider.get().getImageUrl(stateToken);
- Image logo;
- if (clipped) {
- logo = new Image(imageUrl, 0, 0, LOGO_ICON_DEFAULT_WIDTH, LOGO_ICON_DEFAULT_HEIGHT);
- } else {
- logo = new Image(imageUrl);
- logo.setWidth("" + LOGO_ICON_DEFAULT_WIDTH);
- logo.setHeight("" + LOGO_ICON_DEFAULT_HEIGHT);
- }
- add(logo);
- }
-
- public void setLargeFont() {
- getEntityTextLogo().setLargeFont();
- }
-
- public void setLogoImage(StateToken stateToken) {
- entityTextLogo.setLogoImage(downloadProvider.get().getLogoImageUrl(stateToken));
- }
-
- public void setLogoImageVisible(boolean visible) {
- entityTextLogo.setLogoVisible(visible);
- }
-
- public void setLogoText(final String groupName) {
- clear();
- add(getEntityTextLogo());
- entityTextLogo.setLogoText(groupName);
- }
-
- public void setMediumFont() {
- getEntityTextLogo().setMediumFont();
- }
-
- public void setPutYourAvatarText() {
- getEntityTextLogo().setPutYourAvatarText();
- }
-
- public void setPutYourLogoText() {
- getEntityTextLogo().setPutYourLogo();
- }
-
- public void setSetYourLogoVisible(final boolean visible) {
- getEntityTextLogo().setPutYourLogoVisible(visible);
- }
-
- public void setSmallFont() {
- getEntityTextLogo().setSmallFont();
- }
-
- public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
- if (oldTheme != null) {
- getEntityTextLogo().removeStyleDependentName(oldTheme.toString());
- }
- getEntityTextLogo().addStyleDependentName(newTheme.toString());
- }
-
- public void showDefUserLogo() {
- getEntityTextLogo().setLogoImage(images.personAvatarDef());
- }
-
- private EntityTextLogo getEntityTextLogo() {
- if (entityTextLogo == null) {
- this.entityTextLogo = new EntityTextLogo(entityLogoSelectorProvider);
- }
- return entityTextLogo;
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPresenter.java 2008-11-30 23:11:28 UTC (rev 973)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPresenter.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -1,123 +0,0 @@
-/*
- *
- * 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.workspace.client.entitylogo;
-
-import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
-import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.dto.GroupType;
-import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
-
-import com.calclab.suco.client.listener.Listener;
-import com.calclab.suco.client.listener.Listener2;
-
-public class EntityLogoPresenter implements EntityLogo {
- int GROUP_MEDIUM_NAME_LIMIT_SIZE = 90;
- int GROUP_LARGE_NAME_LIMIT_SIZE = 20;
-
- private EntityLogoView view;
- private final Session session;
-
- public EntityLogoPresenter(final StateManager stateManager, final WsThemePresenter theme, final Session session) {
- this.session = session;
-
- stateManager.onGroupChanged(new Listener2<String, String>() {
- public void onEvent(final String oldGroup, final String newGroup) {
- setGroupLogo(session.getCurrentState().getGroup());
- }
- });
- stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
- public void onEvent(final StateAbstractDTO state) {
- setEntityLogoLink(state);
- }
- });
- theme.onThemeChanged(new Listener2<WsTheme, WsTheme>() {
- public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
- view.setTheme(oldTheme, newTheme);
- }
- });
- }
-
- public void init(final EntityLogoView view) {
- this.view = view;
- }
-
- public void refreshGroupLogo() {
- setGroupLogo(session.getCurrentState().getGroup());
- }
-
- public void reloadGroupLogoImage() {
- view.reloadImage(session.getCurrentState().getGroup());
- }
-
- void setEntityLogoLink(final StateAbstractDTO state) {
- final boolean isAdmin = state.getGroupRights().isAdministrable();
- switch (state.getGroup().getGroupType()) {
- case PERSONAL:
- if (state.getGroup().hasLogo()) {
- view.setChangeYourAvatarText();
- } else {
- view.setPutYourAvatarText();
- }
- break;
- default:
- if (state.getGroup().hasLogo()) {
- view.setChangeYourLogoText();
- } else {
- view.setPutYourLogoText();
- }
- break;
- }
- view.setSetYourLogoVisible(isAdmin);
- }
-
- void setGroupLogo(final GroupDTO group) {
- final ContentSimpleDTO groupFullLogo = group.getGroupFullLogo();
- if (groupFullLogo != null) {
- view.setFullLogo(groupFullLogo.getStateToken(), true);
- } else if (group.hasLogo()) {
- setLogoText(group.getLongName());
- view.setLogoImage(group.getStateToken());
- view.setLogoImageVisible(true);
- } else {
- setLogoText(group.getLongName());
- if (group.getGroupType().equals(GroupType.PERSONAL)) {
- view.showDefUserLogo();
- view.setLogoImageVisible(true);
- } else {
- view.setLogoImageVisible(false);
- }
- }
- }
-
- void setLogoText(String name) {
- int length = name.length();
- if (length <= GROUP_LARGE_NAME_LIMIT_SIZE) {
- view.setLargeFont();
- } else if (length <= GROUP_MEDIUM_NAME_LIMIT_SIZE) {
- view.setMediumFont();
- } else {
- view.setSmallFont();
- }
- view.setLogoText(name);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoSelector.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelector.java 2008-11-30 23:11:28 UTC (rev 973)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoSelector.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -1,23 +0,0 @@
-/*
- *
- * 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.workspace.client.entitylogo;
-
-public interface EntityLogoSelector {
- void show();
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoSelectorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java 2008-11-30 23:11:28 UTC (rev 973)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoSelectorPanel.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -1,176 +0,0 @@
-/*
- *
- * 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.workspace.client.entitylogo;
-
-import org.ourproject.kune.platf.client.PlatfMessages;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.ui.dialogs.BasicDialogExtended;
-import org.ourproject.kune.platf.client.ui.download.FileParams;
-import org.ourproject.kune.workspace.client.site.Site;
-import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-
-import com.calclab.suco.client.listener.Listener0;
-import com.gwtext.client.core.Connection;
-import com.gwtext.client.core.EventCallback;
-import com.gwtext.client.core.EventObject;
-import com.gwtext.client.widgets.form.Field;
-import com.gwtext.client.widgets.form.Form;
-import com.gwtext.client.widgets.form.FormPanel;
-import com.gwtext.client.widgets.form.Hidden;
-import com.gwtext.client.widgets.form.Label;
-import com.gwtext.client.widgets.form.TextField;
-import com.gwtext.client.widgets.form.event.FieldListenerAdapter;
-import com.gwtext.client.widgets.form.event.FormListener;
-
-public class EntityLogoSelectorPanel implements EntityLogoSelectorView {
-
- public static final String ICON_UPLOAD_SERVLET = "/kune/servlets/EntityLogoUploadManager";
- public static final String SUBID = "k-elogoselp-subb";
- public static final String CANCELID = "k-elogoselp-canb";
- public static final String DIALOG_ID = "k-elogoselp";
- private final BasicDialogExtended dialog;
- private final FormPanel formPanel;
- private final Hidden userhashField;
- private final Hidden tokenField;
- private final TextField file;
- private final Label dialogInfoLabel;
- private final I18nTranslationService i18n;
-
- public EntityLogoSelectorPanel(final EntityLogoSelectorPresenter presenter, final WorkspaceSkeleton ws,
- I18nTranslationService i18n) {
- this.i18n = i18n;
- dialog = new BasicDialogExtended(i18n.t(PlatfMessages.ENT_LOGO_SELECTOR_NORMAL_TITLE), true, true, 400, 200,
- "", i18n.t("Select"), SUBID, i18n.tWithNT("Cancel", "used in button"), CANCELID, new Listener0() {
- public void onEvent() {
- String filename = file.getValueAsString();
- if (filename != null && filename.length() > 0) {
- formPanel.getForm().submit();
- }
- }
- }, new Listener0() {
- public void onEvent() {
- presenter.onCancel();
- }
- }, 2);
- dialog.setId(DIALOG_ID);
- dialog.setCollapsible(false);
- dialog.setBorder(false);
- // dialog.getFirstButton().disable();
-
- formPanel = new FormPanel();
- formPanel.setFrame(true);
- formPanel.setAutoScroll(false);
- formPanel.setBorder(false);
- formPanel.setFileUpload(true);
- formPanel.setWidth(400);
- formPanel.setMethod(Connection.POST);
- formPanel.setUrl(ICON_UPLOAD_SERVLET);
- formPanel.setWaitMsgTarget(true);
- formPanel.setHideLabels(true);
- formPanel.setPaddings(10);
- formPanel.addFormListener(new FormListener() {
- public boolean doBeforeAction(Form form) {
- return true;
- }
-
- public void onActionComplete(Form form, int httpStatus, String responseText) {
- presenter.onSubmitComplete(httpStatus, responseText);
- }
-
- public void onActionFailed(Form form, int httpStatus, String responseText) {
- Site.important(responseText);
- presenter.onSubmitFailed(httpStatus, responseText);
- }
- });
- dialogInfoLabel = new Label();
- formPanel.add(dialogInfoLabel);
- file = new TextField("File", EntityLogoView.LOGO_FORM_FIELD);
- EventCallback keyListener = new EventCallback() {
- public void execute(EventObject e) {
- // setEnableFileField();
- }
- };
- file.addKeyPressListener(keyListener);
- file.setId(EntityLogoView.LOGO_FORM_FIELD);
- file.setInputType("file");
- userhashField = new Hidden(FileParams.HASH, FileParams.HASH);
- tokenField = new Hidden(FileParams.TOKEN, FileParams.TOKEN);
- formPanel.add(userhashField);
- formPanel.add(tokenField);
- formPanel.add(file);
- FieldListenerAdapter changeListener = new FieldListenerAdapter() {
- @Override
- public void onChange(Field field, Object newVal, Object oldVal) {
- Site.info("change");
- // setEnableFileField();
- }
- };
- // Don't works:
- file.addListener(changeListener);
- dialog.add(formPanel);
- }
-
- // BrowseButton browseButton = new BrowseButton("SelectIcon");
- // browseButton.addListener(new BrowseButtonListenerAdapter() {
- // @Override
- // public void onInputFileChange(BrowseButton browseButton, String filename)
- // {
- // // TODO Auto-generated method stub
- // }
- // });
-
- public void hide() {
- dialog.hide();
- formPanel.getForm().reset();
- }
-
- public void setNormalGroupsLabels() {
- dialogInfoLabel.setHtml(i18n.t("Select an image in your computer as the logo for this group. "
- + "For best results use a [%d]x[%d] pixel image. We will automatically resize bigger images.",
- EntityLogoView.LOGO_ICON_DEFAULT_HEIGHT, EntityLogoView.LOGO_ICON_DEFAULT_HEIGHT)
- + "<br/><br/>");
- dialog.setTitle(PlatfMessages.ENT_LOGO_SELECTOR_NORMAL_TITLE);
- }
-
- public void setPersonalGroupsLabels() {
- dialogInfoLabel.setHtml(i18n.t("Select an image in your computer as your avatar. "
- + "For best results use a [%d]x[%d] pixel image. We will automatically resize bigger images.",
- EntityLogoView.LOGO_ICON_DEFAULT_HEIGHT, EntityLogoView.LOGO_ICON_DEFAULT_HEIGHT)
- + "<br/><br/>");
- dialog.setTitle(PlatfMessages.ENT_LOGO_SELECTOR_PERSON_TITLE);
- }
-
- public void setUploadParams(String userHash, String token) {
- userhashField.setValue(userHash);
- tokenField.setValue(token);
- }
-
- public void show() {
- dialog.show();
- }
-
- @SuppressWarnings("unused")
- private void setEnableFileField() {
- if (file.getValueAsString().length() > 0) {
- dialog.getFirstButton().enable();
- } else {
- dialog.getFirstButton().disable();
- }
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoSelectorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPresenter.java 2008-11-30 23:11:28 UTC (rev 973)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoSelectorPresenter.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -1,71 +0,0 @@
-/*
- *
- * 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.workspace.client.entitylogo;
-
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.site.Site;
-
-public class EntityLogoSelectorPresenter implements EntityLogoSelector {
-
- private EntityLogoSelectorView view;
- private final Session session;
- private final EntityLogo entityLogo;
-
- public EntityLogoSelectorPresenter(Session session, EntityLogo entityLogo) {
- this.session = session;
- this.entityLogo = entityLogo;
- }
-
- public View getView() {
- return view;
- }
-
- public void init(EntityLogoSelectorView view) {
- this.view = view;
- }
-
- public void onCancel() {
- view.hide();
- }
-
- public void onSubmitComplete(int httpStatus, String responseText) {
- view.hide();
- entityLogo.reloadGroupLogoImage();
- }
-
- public void onSubmitFailed(int httpStatus, String responseText) {
- Site.error("Error setting the group logo");
- }
-
- public void show() {
- session.check(new AsyncCallbackSimple<Object>() {
- public void onSuccess(Object result) {
- view.setUploadParams(session.getUserHash(), session.getCurrentStateToken().toString());
- if (session.getCurrentState().getGroup().isPersonalGroup()) {
- view.setPersonalGroupsLabels();
- } else {
- view.setNormalGroupsLabels();
- }
- view.show();
- }
- });
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoSelectorView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorView.java 2008-11-30 23:11:28 UTC (rev 973)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoSelectorView.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -1,33 +0,0 @@
-/*
- *
- * 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.workspace.client.entitylogo;
-
-import org.ourproject.kune.platf.client.View;
-
-public interface EntityLogoSelectorView extends View {
- void hide();
-
- void setNormalGroupsLabels();
-
- void setPersonalGroupsLabels();
-
- void setUploadParams(String userHash, String token);
-
- void show();
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoView.java 2008-11-30 23:11:28 UTC (rev 973)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoView.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -1,64 +0,0 @@
-/*
- *
- * 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.workspace.client.entitylogo;
-
-import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
-
-public interface EntityLogoView {
-
- int LOGO_ICON_DEFAULT_HEIGHT = 60;
- int LOGO_ICON_DEFAULT_WIDTH = 468;
-
- int LOGO_ICON_MIN_HEIGHT = 28;
- int LOGO_ICON_MIN_WIDTH = 468;
-
- String LOGO_FORM_FIELD = "k-elogov-ff";
-
- void reloadImage(GroupDTO group);
-
- void setChangeYourAvatarText();
-
- void setChangeYourLogoText();
-
- void setFullLogo(StateToken stateToken, boolean clipped);
-
- void setLargeFont();
-
- void setLogoImage(StateToken stateToken);
-
- void setLogoImageVisible(boolean visible);
-
- void setLogoText(final String groupName);
-
- void setMediumFont();
-
- void setPutYourAvatarText();
-
- void setPutYourLogoText();
-
- void setSetYourLogoVisible(final boolean visible);
-
- void setSmallFont();
-
- void setTheme(final WsTheme oldTheme, WsTheme newTheme);
-
- void showDefUserLogo();
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityTextLogo.java (from rev 977, trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityTextLogo.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityTextLogo.java 2008-12-02 17:08:38 UTC (rev 977)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityTextLogo.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -0,0 +1,94 @@
+package org.ourproject.kune.workspace.client.entityheader;
+
+import com.google.gwt.user.client.ui.AbstractImagePrototype;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.VerticalPanel;
+
+public class EntityTextLogo extends VerticalPanel {
+
+ public static final String LOGO_NAME = "k-elogop-ln";
+ public static final String LOGO_IMAGE = "k-elogop-image";
+
+ private static final String _100 = "100%";
+ private static final String LOGO_MEDIUM_FONT_STYLE = "k-elogo-l-m";
+ private static final String LOGO_SMALL_FONT_STYLE = "k-elogo-l-s";
+ private static final String LOGO_LARGE_FONT_STYLE = "k-elogo-l-l";
+ private final Label logoLabel;
+ private final Image logoImage;
+
+ public EntityTextLogo() {
+ // Initialize
+ super();
+ HorizontalPanel generalHP = new HorizontalPanel();
+ VerticalPanel logoTextVP = new VerticalPanel();
+ logoImage = new Image();
+ logoLabel = new Label();
+ final Label expandCell = new Label("");
+
+ logoImage.ensureDebugId(LOGO_IMAGE);
+ logoLabel.ensureDebugId(LOGO_NAME);
+
+ // Layout
+ add(generalHP);
+ generalHP.add(logoImage);
+ generalHP.add(logoTextVP);
+ logoTextVP.add(logoLabel);
+
+ // Set properties
+
+ expandCell.setStyleName("k-elogop-expand");
+ generalHP.setWidth(_100);
+ generalHP.setHeight(_100);
+ generalHP.setCellWidth(logoTextVP, _100);
+ generalHP.setCellHeight(logoTextVP, _100);
+ logoTextVP.setWidth(_100);
+ logoTextVP.setCellWidth(logoLabel, _100);
+ super.setVerticalAlignment(ALIGN_MIDDLE);
+ logoTextVP.setVerticalAlignment(ALIGN_MIDDLE);
+ generalHP.setVerticalAlignment(ALIGN_MIDDLE);
+ setStylePrimaryName("k-entitytextlogo");
+ addStyleName("k-entitytextlogo-no-border");
+ logoImage.setVisible(false);
+ setLogoText("");
+ }
+
+ public void setLargeFont() {
+ resetFontSize();
+ logoLabel.addStyleName(LOGO_LARGE_FONT_STYLE);
+ }
+
+ public void setLogoImage(AbstractImagePrototype imageProto) {
+ imageProto.applyTo(logoImage);
+ }
+
+ public void setLogoImage(final String url) {
+ Image.prefetch(url);
+ logoImage.setUrl(url);
+ }
+
+ public void setLogoText(final String text) {
+ logoLabel.setText(text);
+ }
+
+ public void setLogoVisible(final boolean visible) {
+ logoImage.setVisible(visible);
+ }
+
+ public void setMediumFont() {
+ resetFontSize();
+ logoLabel.addStyleName(LOGO_MEDIUM_FONT_STYLE);
+ }
+
+ public void setSmallFont() {
+ resetFontSize();
+ logoLabel.addStyleName(LOGO_SMALL_FONT_STYLE);
+ }
+
+ private void resetFontSize() {
+ logoLabel.removeStyleName(LOGO_LARGE_FONT_STYLE);
+ logoLabel.removeStyleName(LOGO_SMALL_FONT_STYLE);
+ logoLabel.removeStyleName(LOGO_MEDIUM_FONT_STYLE);
+ }
+}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/nohomepage/NoHomePagePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/nohomepage/NoHomePagePresenter.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/nohomepage/NoHomePagePresenter.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -22,7 +22,7 @@
import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
import org.ourproject.kune.platf.client.dto.StateNoContentDTO;
import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeader;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import com.calclab.suco.client.ioc.Provider;
import com.calclab.suco.client.listener.Listener;
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-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -7,7 +7,7 @@
import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.platf.client.ui.IconLabel;
import org.ourproject.kune.platf.client.ui.dialogs.DefaultForm;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeader;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.user.client.ui.AbstractImagePrototype;
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPanel.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPanel.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -21,7 +21,7 @@
import org.ourproject.kune.platf.client.PlatfMessages;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.ui.download.FileParams;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeaderView;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeaderView;
import org.ourproject.kune.workspace.client.site.Site;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPresenter.java 2008-12-02 17:42:31 UTC (rev 978)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPresenter.java 2008-12-03 11:17:42 UTC (rev 979)
@@ -21,7 +21,7 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.entitylogo.EntityHeader;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.options.EntityOptions;
import org.ourproject.kune.workspace.client.site.Site;
1
0