From 63f1f0310d84331a854ea73c3be1020f4fbdf77f Mon Sep 17 00:00:00 2001 From: bsinou Date: Wed, 1 Feb 2017 15:19:44 +0100 Subject: [PATCH] Work on the Documents app --- .../META-INF/spring/parts.xml | 9 +- org.argeo.suite.workbench.rap/bnd.bnd | 2 + org.argeo.suite.workbench.rap/plugin.xml | 19 +- .../workbench/AsWorkbenchServiceImpl.java | 15 +- .../suite/workbench/DashboardPerspective.java | 2 +- .../workbench/commands/OpenEntityEditor.java | 68 ++++ .../argeo/suite/workbench/fs/FsImages.java | 12 - .../fs/FsSingleColumnLabelProvider.java | 56 ---- .../suite/workbench/parts/MyFilesView.java | 299 ------------------ .../argeo-classic/icons/fs/addFolder.gif | Bin 0 -> 343 bytes .../argeo-classic/icons/fs/bookmarkFolder.png | Bin 0 -> 557 bytes .../argeo-classic/icons/fs/createFolder.png | Bin 496 -> 0 bytes .../theme/argeo-classic/icons/fs/open.png | Bin 496 -> 340 bytes .../argeo-classic/icons/fs/shareFolder.png | Bin 496 -> 510 bytes .../theme/argeo-classic/icons/fs/upload.png | Bin 496 -> 335 bytes .../theme/argeo-classic/workbench-ext.css | 57 ++-- pom.xml | 2 +- 17 files changed, 132 insertions(+), 409 deletions(-) create mode 100644 org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/commands/OpenEntityEditor.java delete mode 100644 org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/fs/FsImages.java delete mode 100644 org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/fs/FsSingleColumnLabelProvider.java delete mode 100644 org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/MyFilesView.java create mode 100644 org.argeo.suite.workbench.rap/theme/argeo-classic/icons/fs/addFolder.gif create mode 100644 org.argeo.suite.workbench.rap/theme/argeo-classic/icons/fs/bookmarkFolder.png delete mode 100644 org.argeo.suite.workbench.rap/theme/argeo-classic/icons/fs/createFolder.png diff --git a/org.argeo.suite.workbench.rap/META-INF/spring/parts.xml b/org.argeo.suite.workbench.rap/META-INF/spring/parts.xml index 932711f..68c2204 100644 --- a/org.argeo.suite.workbench.rap/META-INF/spring/parts.xml +++ b/org.argeo.suite.workbench.rap/META-INF/spring/parts.xml @@ -10,17 +10,14 @@ scope="prototype"> - - - - - - + diff --git a/org.argeo.suite.workbench.rap/bnd.bnd b/org.argeo.suite.workbench.rap/bnd.bnd index 17e6138..57d52a8 100644 --- a/org.argeo.suite.workbench.rap/bnd.bnd +++ b/org.argeo.suite.workbench.rap/bnd.bnd @@ -12,7 +12,9 @@ javax.jcr.security,\ org.argeo.cms,\ org.argeo.cms.ui.workbench,\ org.argeo.connect,\ +org.argeo.connect.ui,\ org.argeo.connect.people.workbench.rap.views,\ +org.argeo.connect.documents.workbench.parts,\ org.argeo.connect.ui.workbench,\ org.argeo.eclipse.spring,\ org.argeo.node,\ diff --git a/org.argeo.suite.workbench.rap/plugin.xml b/org.argeo.suite.workbench.rap/plugin.xml index bdc6808..863eb87 100644 --- a/org.argeo.suite.workbench.rap/plugin.xml +++ b/org.argeo.suite.workbench.rap/plugin.xml @@ -33,13 +33,6 @@ name="Test View" restorable="true"> - - @@ -61,6 +54,18 @@ defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler" name="createEntity"> + + + + + + + diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/AsWorkbenchServiceImpl.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/AsWorkbenchServiceImpl.java index dcc9aa1..eb18dc5 100644 --- a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/AsWorkbenchServiceImpl.java +++ b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/AsWorkbenchServiceImpl.java @@ -6,6 +6,7 @@ import javax.jcr.Node; import org.argeo.connect.ui.workbench.AppWorkbenchService; import org.argeo.eclipse.ui.EclipseUiUtils; +import org.argeo.suite.workbench.commands.OpenEntityEditor; import org.argeo.suite.workbench.parts.DefaultDashboardEditor; import org.eclipse.jface.wizard.Wizard; import org.eclipse.swt.graphics.Image; @@ -24,13 +25,13 @@ public class AsWorkbenchServiceImpl implements AppWorkbenchService { @Override public String getOpenEntityEditorCmdId() { - String result = null; - for (AppWorkbenchService appWbService : knownAppWbServices) { - result = appWbService.getOpenEntityEditorCmdId(); - if (EclipseUiUtils.notEmpty(result)) - return result; - } - return null; +// String result = null; +// for (AppWorkbenchService appWbService : knownAppWbServices) { +// result = appWbService.getOpenEntityEditorCmdId(); +// if (EclipseUiUtils.notEmpty(result)) +// return result; +// } + return OpenEntityEditor.ID; } @Override diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/DashboardPerspective.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/DashboardPerspective.java index f723e8d..3e5bcf7 100644 --- a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/DashboardPerspective.java +++ b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/DashboardPerspective.java @@ -1,8 +1,8 @@ package org.argeo.suite.workbench; +import org.argeo.connect.documents.workbench.parts.MyFilesView; import org.argeo.connect.people.workbench.rap.views.MyTasksView; import org.argeo.connect.people.workbench.rap.views.QuickSearchView; -import org.argeo.suite.workbench.parts.MyFilesView; import org.eclipse.ui.IFolderLayout; import org.eclipse.ui.IPageLayout; import org.eclipse.ui.IPerspectiveFactory; diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/commands/OpenEntityEditor.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/commands/OpenEntityEditor.java new file mode 100644 index 0000000..aad084b --- /dev/null +++ b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/commands/OpenEntityEditor.java @@ -0,0 +1,68 @@ +package org.argeo.suite.workbench.commands; + +import javax.jcr.Node; +import javax.jcr.Repository; +import javax.jcr.RepositoryException; +import javax.jcr.Session; + +import org.argeo.connect.ui.workbench.AppWorkbenchService; +import org.argeo.connect.ui.workbench.NodeEditorInput; +import org.argeo.jcr.JcrUtils; +import org.argeo.suite.SuiteException; +import org.argeo.suite.workbench.AsUiPlugin; +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.handlers.HandlerUtil; + +/** Workaround to enable opening of a default editor */ +public class OpenEntityEditor extends AbstractHandler { + public final static String ID = AsUiPlugin.PLUGIN_ID + ".openEntityEditor"; + + public final static String PARAM_JCR_ID = "param.jcrId"; + // public final static String PARAM_OPEN_FOR_EDIT = "param.openForEdit"; + // public final static String PARAM_CTAB_ID = "param.cTabId"; + + private Repository repository; + private AppWorkbenchService appWorkbenchService; + + public Object execute(ExecutionEvent event) throws ExecutionException { + NodeEditorInput eei = null; + Node entity = null; + Session session = null; + String jcrId = event.getParameter(PARAM_JCR_ID); + try { + session = repository.login(); + if (jcrId != null) { + entity = session.getNodeByIdentifier(jcrId); + eei = new NodeEditorInput(jcrId); + } else + return null; + + String editorId = appWorkbenchService.getEntityEditorId(entity); + if (editorId != null) { + IWorkbenchWindow iww = HandlerUtil.getActiveWorkbenchWindow(event); + IWorkbenchPage iwp = iww.getActivePage(); + iwp.openEditor(eei, editorId); + } + } catch (PartInitException pie) { + throw new SuiteException("Unexpected PartInitException while opening entity editor", pie); + } catch (RepositoryException e) { + throw new SuiteException("unexpected JCR error while opening editor", e); + } finally { + JcrUtils.logoutQuietly(session); + } + return null; + } + + public void setRepository(Repository repository) { + this.repository = repository; + } + + public void setAppWorkbenchService(AppWorkbenchService appWorkbenchService) { + this.appWorkbenchService = appWorkbenchService; + } +} diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/fs/FsImages.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/fs/FsImages.java deleted file mode 100644 index ec6304f..0000000 --- a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/fs/FsImages.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.argeo.suite.workbench.fs; - -import org.argeo.suite.workbench.AsUiPlugin; -import org.eclipse.swt.graphics.Image; - -/** Shared icons for the file system RAP workbench */ -public class FsImages { - final private static String BASE_PATH = "/theme/argeo-classic/icons/fs/"; - // Various types - public final static Image ICON_FOLDER = AsUiPlugin.getImageDescriptor(BASE_PATH + "folder.gif").createImage(); - public final static Image ICON_FILE = AsUiPlugin.getImageDescriptor(BASE_PATH + "file.gif").createImage(); -} diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/fs/FsSingleColumnLabelProvider.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/fs/FsSingleColumnLabelProvider.java deleted file mode 100644 index d3c62ff..0000000 --- a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/fs/FsSingleColumnLabelProvider.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.argeo.suite.workbench.fs; - -import javax.jcr.Node; -import javax.jcr.RepositoryException; -import javax.jcr.nodetype.NodeType; - -import org.argeo.connect.people.PeopleNames; -import org.argeo.connect.ui.ConnectUiUtils; -import org.argeo.suite.SuiteException; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.swt.graphics.Image; - -/** - * Provide a single column label provider for file and directory lists. Icon and - * displayed text vary with the element node type - */ -public class FsSingleColumnLabelProvider extends LabelProvider implements PeopleNames { - private static final long serialVersionUID = -8895136766988459632L; - - public FsSingleColumnLabelProvider() { - } - - @Override - public String getText(Object element) { - try { - Node entity = (Node) element; - String result; - if (entity.isNodeType(NodeType.NT_FILE)) - result = entity.getName(); - // result = ConnectJcrUtils.get(entity, Property.JCR_TITLE); - else if (entity.isNodeType(NodeType.NT_FOLDER)) - result = entity.getName(); - // result = ConnectJcrUtils.get(entity, Property.JCR_TITLE); - else - result = ""; - return ConnectUiUtils.replaceAmpersand(result); - } catch (RepositoryException re) { - throw new SuiteException("Unable to get formatted value for node", re); - } - } - - /** Overwrite this method to provide project specific images */ - @Override - public Image getImage(Object element) { - try { - Node entity = (Node) element; - if (entity.isNodeType(NodeType.NT_FILE)) - return FsImages.ICON_FILE; - else if (entity.isNodeType(NodeType.NT_FOLDER)) - return FsImages.ICON_FOLDER; - return null; - } catch (RepositoryException re) { - throw new SuiteException("Cannot get icon for " + element, re); - } - } -} diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/MyFilesView.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/MyFilesView.java deleted file mode 100644 index f69710c..0000000 --- a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/MyFilesView.java +++ /dev/null @@ -1,299 +0,0 @@ -/* - * Copyright (C) 2007-2012 Argeo GmbH - * - * 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. - */ -package org.argeo.suite.workbench.parts; - -import static org.argeo.eclipse.ui.EclipseUiUtils.notEmpty; - -import java.nio.file.spi.FileSystemProvider; - -import javax.jcr.NodeIterator; -import javax.jcr.Repository; -import javax.jcr.RepositoryException; -import javax.jcr.Session; -import javax.jcr.query.Query; -import javax.jcr.query.QueryManager; -import javax.jcr.query.QueryResult; - -import org.argeo.cms.util.CmsUtils; -import org.argeo.connect.ConnectConstants; -import org.argeo.connect.documents.DocumentsService; -import org.argeo.connect.people.PeopleException; -import org.argeo.connect.people.workbench.rap.providers.BasicNodeListContentProvider; -import org.argeo.connect.ui.ConnectUiConstants; -import org.argeo.connect.ui.widgets.DelayedText; -import org.argeo.connect.ui.workbench.AppWorkbenchService; -import org.argeo.connect.util.ConnectJcrUtils; -import org.argeo.connect.util.XPathUtils; -import org.argeo.eclipse.ui.EclipseUiUtils; -import org.argeo.eclipse.ui.fs.FsTableViewer; -import org.argeo.jcr.JcrUtils; -import org.argeo.suite.workbench.AsUiPlugin; -import org.argeo.suite.workbench.fs.FsSingleColumnLabelProvider; -import org.eclipse.jface.layout.TableColumnLayout; -import org.eclipse.jface.viewers.ColumnWeightData; -import org.eclipse.jface.viewers.DoubleClickEvent; -import org.eclipse.jface.viewers.IDoubleClickListener; -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.viewers.TableViewer; -import org.eclipse.rap.rwt.service.ServerPushSession; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.KeyEvent; -import org.eclipse.swt.events.KeyListener; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; -import org.eclipse.ui.part.ViewPart; - -/** Browse the node file system. */ -public class MyFilesView extends ViewPart implements IDoubleClickListener { - public final static String ID = AsUiPlugin.PLUGIN_ID + ".myFilesView"; - - private Repository repository; - private Session session; - private AppWorkbenchService appWorkbenchService; - private FileSystemProvider nodeFileSystemProvider; - private DocumentsService documentsService; - - private DelayedText filterTxt; - private TableViewer searchResultsViewer; - private Composite searchCmp; - - @Override - public void createPartControl(Composite parent) { - session = ConnectJcrUtils.login(repository); - // MainLayout - parent.setLayout(new GridLayout()); - addFilterPanel(parent); - searchCmp = new Composite(parent, SWT.NO_FOCUS); - searchCmp.setLayout(EclipseUiUtils.noSpaceGridLayout()); - searchResultsViewer = createListPart(searchCmp, new FsSingleColumnLabelProvider()); - GridData gd = EclipseUiUtils.fillWidth(); - gd.heightHint = 0; - searchCmp.setLayoutData(gd); - - Composite bookmarkCmp = new Composite(parent, SWT.NO_FOCUS); - bookmarkCmp.setLayoutData(EclipseUiUtils.fillAll()); - populateBookmarks(bookmarkCmp); - } - - public void addFilterPanel(Composite parent) { - // Use a delayed text: the query won't be done until the user stop - // typing for 800ms - int style = SWT.BORDER | SWT.SEARCH | SWT.ICON_CANCEL; - filterTxt = new DelayedText(parent, style, ConnectUiConstants.SEARCH_TEXT_DELAY); - filterTxt.setLayoutData(EclipseUiUtils.fillWidth()); - - final ServerPushSession pushSession = new ServerPushSession(); - filterTxt.addDelayedModifyListener(pushSession, new ModifyListener() { - private static final long serialVersionUID = 5003010530960334977L; - - public void modifyText(ModifyEvent event) { - filterTxt.getDisplay().asyncExec(new Runnable() { - @Override - public void run() { - int resultNb = refreshFilteredList(); - if (resultNb > 0) - ((GridData) searchCmp.getLayoutData()).heightHint = 120; - else - ((GridData) searchCmp.getLayoutData()).heightHint = 0; - parent.layout(true, true); - } - }); - pushSession.stop(); - } - }); - - // Jump to the first item of the list using the down arrow - filterTxt.addKeyListener(new KeyListener() { - private static final long serialVersionUID = -4523394262771183968L; - - @Override - public void keyReleased(KeyEvent e) { - } - - @Override - public void keyPressed(KeyEvent e) { - // boolean shiftPressed = (e.stateMask & SWT.SHIFT) != 0; - // boolean altPressed = (e.stateMask & SWT.ALT) != 0; - if (e.keyCode == SWT.ARROW_DOWN || e.keyCode == SWT.TAB) { - Object first = searchResultsViewer.getElementAt(0); - if (first != null) { - searchResultsViewer.getTable().setFocus(); - searchResultsViewer.setSelection(new StructuredSelection(first), true); - } - e.doit = false; - } - } - }); - } - - protected TableViewer createListPart(Composite parent, ILabelProvider labelProvider) { - parent.setLayout(new GridLayout()); - - Composite tableComposite = new Composite(parent, SWT.NONE); - tableComposite.setLayoutData(EclipseUiUtils.fillAll()); - - TableViewer v = new TableViewer(tableComposite); - v.setLabelProvider(labelProvider); - - TableColumn singleColumn = new TableColumn(v.getTable(), SWT.V_SCROLL); - TableColumnLayout tableColumnLayout = new TableColumnLayout(); - tableColumnLayout.setColumnData(singleColumn, new ColumnWeightData(100)); - tableComposite.setLayout(tableColumnLayout); - - // Corresponding table & style - Table table = v.getTable(); - table.setLinesVisible(false); - table.setHeaderVisible(false); - CmsUtils.markup(table); - CmsUtils.setItemHeight(table, 26); - - v.setContentProvider(new BasicNodeListContentProvider()); - v.addDoubleClickListener(this); - return v; - } - - @Override - public void dispose() { - JcrUtils.logoutQuietly(session); - super.dispose(); - } - - protected int refreshFilteredList() { - try { - String filter = filterTxt.getText(); - if (EclipseUiUtils.isEmpty(filter)) { - searchResultsViewer.setInput(null); - return 0; - } - - // XPATH Query - // TODO manage cleanly jcr: prefix - // String xpathQueryStr = "//element(*, " + NodeType.NT_FILE + ")"; - String xpathQueryStr = "//element(*, nt:file)"; - String xpathFilter = XPathUtils.getFreeTextConstraint(filter); - if (notEmpty(xpathFilter)) - xpathQueryStr += "[" + xpathFilter + "]"; - - QueryManager queryManager = session.getWorkspace().getQueryManager(); - Query xpathQuery = queryManager.createQuery(xpathQueryStr, ConnectConstants.QUERY_XPATH); - // xpathQuery.setLimit(TrackerUiConstants.SEARCH_DEFAULT_LIMIT); - QueryResult result = xpathQuery.execute(); - NodeIterator nit = result.getNodes(); - searchResultsViewer.setInput(JcrUtils.nodeIteratorToList(nit)); - - return (int) nit.getSize(); - } catch (RepositoryException e) { - throw new PeopleException("Unable to list files", e); - } - } - - private void populateBookmarks(Composite parent) { - CmsUtils.clear(parent); - parent.setLayout(new GridLayout()); - int bookmarkColWith = 200; - - FsTableViewer homeViewer = new FsTableViewer(parent, SWT.SINGLE | SWT.NO_SCROLL); - Table table = homeViewer.configureDefaultSingleColumnTable(bookmarkColWith); - GridData gd = EclipseUiUtils.fillWidth(); - gd.horizontalIndent = 10; - table.setLayoutData(gd); - homeViewer.addDoubleClickListener(this); - homeViewer.setPathsInput(documentsService.getMyDocumentsPath(nodeFileSystemProvider, session)); - - appendTitle(parent, "Shared files"); - FsTableViewer groupsViewer = new FsTableViewer(parent, SWT.SINGLE | SWT.NO_SCROLL); - table = groupsViewer.configureDefaultSingleColumnTable(bookmarkColWith); - gd = EclipseUiUtils.fillWidth(); - gd.horizontalIndent = 10; - table.setLayoutData(gd); - groupsViewer.addDoubleClickListener(this); - groupsViewer.setPathsInput(documentsService.getMyGroupsFilesPath(nodeFileSystemProvider, session)); - - appendTitle(parent, "My bookmarks"); - FsTableViewer bookmarksViewer = new FsTableViewer(parent, SWT.SINGLE | SWT.NO_SCROLL); - table = bookmarksViewer.configureDefaultSingleColumnTable(bookmarkColWith); - gd = EclipseUiUtils.fillWidth(); - gd.horizontalIndent = 10; - table.setLayoutData(gd); - bookmarksViewer.addDoubleClickListener(this); - bookmarksViewer.setPathsInput(documentsService.getMyBookmarks(nodeFileSystemProvider, session)); - } - - private Label appendTitle(Composite parent, String value) { - Label titleLbl = new Label(parent, SWT.NONE); - titleLbl.setText(value); - titleLbl.setFont(EclipseUiUtils.getBoldFont(parent)); - GridData gd = EclipseUiUtils.fillWidth(); - gd.horizontalIndent = 5; - gd.verticalIndent = 5; - titleLbl.setLayoutData(gd); - return titleLbl; - } - - @Override - public void doubleClick(DoubleClickEvent event) { - IStructuredSelection selection = (IStructuredSelection) event.getSelection(); - if (selection.isEmpty()) - return; - else { - - // currNode = ConnectJcrUtils.getNodeFromElement(obj, selectorName); - // if (currNode != null) - // CommandUtils - // .callCommand(peopleWorkbenchService - // .getOpenEntityEditorCmdId(), - // OpenEntityEditor.PARAM_JCR_ID, currNode - // .getIdentifier()); - System.out.println("Double clicked"); - // TODO open corresponding editor - // Path newSelected = (Path) selection.getFirstElement(); - // if (newSelected.equals(currDisplayedFolder) && - // newSelected.equals(initialPath)) - // return; - // initialPath = newSelected; - // setInput(newSelected); - } - } - - @Override - public void setFocus() { - } - - /* DEPENDENCY INJECTION */ - public void setRepository(Repository repository) { - this.repository = repository; - } - - public void setAppWorkbenchService(AppWorkbenchService appWorkbenchService) { - this.appWorkbenchService = appWorkbenchService; - } - - public void setNodeFileSystemProvider(FileSystemProvider nodeFileSystemProvider) { - this.nodeFileSystemProvider = nodeFileSystemProvider; - } - - public void setDocumentsService(DocumentsService documentsService) { - this.documentsService = documentsService; - } -} diff --git a/org.argeo.suite.workbench.rap/theme/argeo-classic/icons/fs/addFolder.gif b/org.argeo.suite.workbench.rap/theme/argeo-classic/icons/fs/addFolder.gif new file mode 100644 index 0000000000000000000000000000000000000000..d3f43d9775346f8c3bc3e7f781a4bfe852d42cc1 GIT binary patch literal 343 zcmZ?wbhEHb6krfwxT?jlYr5LjNy>k}oL|=^|Nm0SzrXK)y_|Qr)9ml(^YbdjmNrRk zE>Qb_f9jiy-T!ZOY@Mh)vqbp+>n)or4gNe|{QGY6|6A?fl zjZ!=6j2<7X-BD|Fb5r5B`_ukkEd770^Z)D3|DP`T59EG5^Z(Z?ku4)and9)6>(=d)mgLW n@W?m|DJ@#Om`_y7SyOTKnl&senl74~w`|?$w_~TLBZD;nnW}>Q literal 0 HcmV?d00001 diff --git a/org.argeo.suite.workbench.rap/theme/argeo-classic/icons/fs/bookmarkFolder.png b/org.argeo.suite.workbench.rap/theme/argeo-classic/icons/fs/bookmarkFolder.png new file mode 100644 index 0000000000000000000000000000000000000000..8bb2361071fd53d06bcff2f9d0a53cc94dda6466 GIT binary patch literal 557 zcmV+|0@D47P)NklJa&zHWO#S{Qd%gIg<*%ESy;d)Li?2`J(p!hYoD~zjxP) z|3o^yU>DH#fAgnT{9m@P?f=33>w%hA{@=V|7GVRnFAguAHL>vjk~vNP7Xe+ccvj8- z-P@P^-?Cx$|5eL+@Eh>zgqqFE6IvhltRA-;kmUwkS^V^S`1^@p%?fw7v)7<}m-`4{*#{ga8`2Xc8lmF*d z8@*pYGsF$MzmF-ayg8}+{Liz#|9?Nv2WqbU|L;{4Fbo|2zc^|1=iC~@_s5nQYoKWQ zdR^{57~fF3|MO|W{r8t#-@iDn`|as5<9APv7{9-}*WkmoE&89&tu=gup&1vrzu!RM v{&o$8o7?qmuC6yQIKSRNVgGys0c>gkB(6{-NEP-;00000NkvXXu0mjf*5)jq literal 0 HcmV?d00001 diff --git a/org.argeo.suite.workbench.rap/theme/argeo-classic/icons/fs/createFolder.png b/org.argeo.suite.workbench.rap/theme/argeo-classic/icons/fs/createFolder.png deleted file mode 100644 index 3f56074f7817b41c52e978b6d405b1d8a60cb9a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmVTL+@c706Xc<2?0}cp_ zh%g*Ia)jaSn>U1l!~v@TTwGiXrR5b2>KYnwiSEu0hQkLBFnD=*fbqGrXBh6@xr1Q< zBQ)UN@7}db;PK-}3`xl;V2MYM9x)`w$1x}y&?b zphMvy$p-9f5Z2h!BK!Wqk(R%^8pQsSWB^F>?k1V{_YXJ!{rltA|Gn+XKX=rL{zt~U zTjcKUs1xzVFkok;u*S{?>G$^zHT?bi{mOq_`03dx-*+_0JbyqjU|X4x%(i-|_jmV{ z{{8#$;D17ROO?of6azL^h^lO0|L0!Y{~ZkqU)L22{YSa{v1BM0w07la#J`{BgNB{r; M07*qoM6N<$f(MkQy8r+H delta 471 zcmV;|0Vw{|0`LQnBYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUz zl1W5CRCwBAWFP?M%$u(dq#S_wKuS{LMRa)TL+@c706Xc<2?0}cp_h%g*Ia)jaSn>U1l#D4*+0bE>M45j524C)#h zaEb2D4u-=A4={Lnc!2S_vu7CY-noNe03$Tu-tXSEOW^V2M+`~HDPW05j~+23#>X)z zC@3&&*sy^iFfb4#`~l=;AfAZq0tT2X9s@PKfqFwuPLAQ-`wt8sK73$ENJxOG7l6jb zc_7wDj>ZE(=YI!S+t{Eu@9MQ{4AZ7gVfgs*BSwG%@dc1!a2JRG19HmbNesXkfvfuU z>lcH*p%H_XwKc9lEdUz;O<^Ga!My+jAg_VKrL?S^L0DKA!vtm+!_Pm!!pz)UO!8#frbyE+*_G*B)8w1^=iGphik9>V}oIsiEp zIXz$lCZ?teK*|w_0~paV(t8|v;RDph1L(ODJvUx}CRdyq&;dYz0RUBKkMAJute*e? N002ovPDHLkV1msp#iRfL diff --git a/org.argeo.suite.workbench.rap/theme/argeo-classic/icons/fs/shareFolder.png b/org.argeo.suite.workbench.rap/theme/argeo-classic/icons/fs/shareFolder.png index 3f56074f7817b41c52e978b6d405b1d8a60cb9a9..269cdac874bcf113f6f71fee41d682ba9d3fdd03 100644 GIT binary patch delta 485 zcmV??QL1uYE?epNO1{cz zl0boj06_x^D%utD%Ub^Dl{V)qRyiN4+F190&y6kr)0Y(dm8*1`ghNxa14t7(mZ^05 zoU^U)f6>nJ{~4R||4UXlyuxEZ>tnF(7iTn< z)pq^w?4R|&u%Znm9pnMSt8#Dc|D3G_|0T=q-(WQ$pM!Ct#qaRF;LzhXh1_l0}DpL bBZU_L2Y2$mkvRyp00000NkvXXu0mjfD^>9X delta 471 zcmV;|0Vw|d1MmZoBYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUz zl1W5CRCwBAWFP?M%$u(dq#S_wKuS{LMRa)TL+@c706Xc<2?0}cp_h%g*Ia)jaSn>U1l#D4*+0bE>M45j524C)#h zaEb2D4u-=A4={Lnc!2S_vu7CY-noNe03$Tu-tXSEOW^V2M+`~HDPW05j~+23#>X)z zC@3&&*sy^iFfb4#`~l=;AfAZq0tT2X9s@PKfqFwuPLAQ-`wt8sK73$ENJxOG7l6jb zc_7wDj>ZE(=YI!S+t{Eu@9MQ{4AZ7gVfgs*BSwG%@dc1!a2JRG19HmbNesXkfvfuU z>lcH*p%H_XwKc9lEdUz;O<^Ga!My+jAg_VKrL?S^L0DKA!vtm+!_Pm!!pz)UO!8#frbyE+*_G*B)8w1^=iGphik9>V}oIsiEp zIXz$lCZ?teK*|w_0~paV(t8|v;RDph1L(ODJvUx}CRdyq&;dYz0RUBKkMAJute*e? N002ovPDHLkV1gW2#m@i$ diff --git a/org.argeo.suite.workbench.rap/theme/argeo-classic/icons/fs/upload.png b/org.argeo.suite.workbench.rap/theme/argeo-classic/icons/fs/upload.png index 3f56074f7817b41c52e978b6d405b1d8a60cb9a9..71c80e8e7f73881cf2662d2343f5fa0e741d54cb 100644 GIT binary patch delta 309 zcmV-50m}aH1J44GBYy!FNklhMczB>w;nw~JQ3-Up zxZ0JiKm-2ZHDFhR*#G;7nt$wVm4AS42#Nta>qNtMH_N`*Q78Hz8SiaZ{`vREt^fB9 zHvQP$Ecak5k|8Jt?5LOc_~zE~KYzbp`Hu_VJy7>!N0SWP5PuW{wp5Ay|NHSEL40R- z$&c*~(hpWOi1MHqu&F}$|DRWD3F0S5s{U-Lk$khhK|lc2fO66AA1<~2|MO%PPW*U( z?w`$-5^pva3u|C_VSTYs{)SSK@9T<%{v+cZ4GLfX+-v*)cvr%ojpgER)<88A9gS-W zh5kR>8TV&>87``3;tePge!I3<TL+@c706Xc<2?0}cp_h%g*Ia)jaSn>U1l#D4*+0bE>M45j524C)#h zaEb2D4u-=A4={Lnc!2S_vu7CY-noNe03$Tu-tXSEOW^V2M+`~HDPW05j~+23#>X)z zC@3&&*sy^iFfb4#`~l=;AfAZq0tT2X9s@PKfqFwuPLAQ-`wt8sK73$ENJxOG7l6jb zc_7wDj>ZE(=YI!S+t{Eu@9MQ{4AZ7gVfgs*BSwG%@dc1!a2JRG19HmbNesXkfvfuU z>lcH*p%H_XwKc9lEdUz;O<^Ga!My+jAg_VKrL?S^L0DKA!vtm+!_Pm!!pz)UO!8#frbyE+*_G*B)8w1^=iGphik9>V}oIsiEp zIXz$lCZ?teK*|w_0~paV(t8|v;RDph1L(ODJvUx}CRdyq&;dYz0RUBKkMAJute*e? N002ovPDHLkV1mQ?#h(BG diff --git a/org.argeo.suite.workbench.rap/theme/argeo-classic/workbench-ext.css b/org.argeo.suite.workbench.rap/theme/argeo-classic/workbench-ext.css index a5d18b2..111e413 100644 --- a/org.argeo.suite.workbench.rap/theme/argeo-classic/workbench-ext.css +++ b/org.argeo.suite.workbench.rap/theme/argeo-classic/workbench-ext.css @@ -80,15 +80,14 @@ Widget-ToolTip { } -/** HEADER - **/ +/** HEADER **/ .people_entity_header { font: 14px Helvetica, Verdana, "Lucida Sans", Arial, sans-serif; text-decoration: none; } -/****** Flat image Buttons *********/ +/** Flat image Buttons **/ Button[PUSH][FLAT].people_flat_btn, Button.people_flat_btn, Button.people_flat_btn:default, @@ -105,15 +104,27 @@ Button.people_flat_btn:selected { cursor: pointer; } -/* -Button.createFolder_btn:selected, -Button.createFolder_btn:disabled, -Button.createFolder_btn:pressed, +/****** DOCUMENTS *********/ -*/ +/* Breadcrumb ***/ +Button.breadCrumb_btn { + border: 1px solid #f4f6f7; + border-radius: 3px; + padding: 2px 2px 2px 2px; + background-color: transparent; + background-repeat: no-repeat; + animation: hoverOut 500ms ease-out; + cursor: pointer; + font-color: #00294b; + text-decoration: none; +} -/****** Context menu *********/ +Button.breadCrumb_btn:hover { + text-decoration: underline; +} + +/* Documents lists context menu */ .contextMenu_box { border: 0px solid #fde2d5; padding: 0px; @@ -121,13 +132,17 @@ Button.createFolder_btn:pressed, } Button[PUSH][FLAT].createFolder_btn { - background-image: url( theme/argeo-classic/icons/fs/createFolder.png); + background-image: url( theme/argeo-classic/icons/fs/addFolder.gif); } Button[PUSH][FLAT].shareFolder_btn { background-image: url( theme/argeo-classic/icons/fs/shareFolder.png); } +Button[PUSH][FLAT].bookmarkFolder_btn { + background-image: url( theme/argeo-classic/icons/fs/bookmarkFolder.png); +} + Button[PUSH][FLAT].downloadFolder_btn { background-image: url( theme/argeo-classic/icons/fs/downloadFolder.png); } @@ -144,16 +159,17 @@ Button[PUSH][FLAT].open_btn { background-image: url( theme/argeo-classic/icons/fs/open.png); } +Button[PUSH][FLAT].createFolder_btn, Button[PUSH][FLAT].shareFolder_btn, +Button[PUSH][FLAT].bookmarkFolder_btn, Button[PUSH][FLAT].downloadFolder_btn, Button[PUSH][FLAT].delete_btn, Button[PUSH][FLAT].uploadFiles_btn, -Button[PUSH][FLAT].open_btn, -Button[PUSH][FLAT].createFolder_btn { +Button[PUSH][FLAT].open_btn { border: 0px solid white; border-left: 10px solid transparent; border-radius: 0px; - padding: 8px 5px 8px 24px; + padding: 4px 5px 4px 24px; background-color: transparent; background-repeat: no-repeat; background-position: left; @@ -161,27 +177,28 @@ Button[PUSH][FLAT].createFolder_btn { cursor: pointer; } +Button[PUSH][FLAT].createFolder_btn:hover, Button[PUSH][FLAT].shareFolder_btn:hover, +Button[PUSH][FLAT].bookmarkFolder_btn:hover, Button[PUSH][FLAT].downloadFolder_btn:hover, Button[PUSH][FLAT].delete_btn:hover, Button[PUSH][FLAT].uploadFiles_btn:hover, -Button[PUSH][FLAT].open_btn:hover, -Button[PUSH][FLAT].createFolder_btn:hover { +Button[PUSH][FLAT].open_btn:hover { background-color: #fef0ea; } +Button[PUSH][FLAT].createFolder_btn:pressed, +Button[PUSH][FLAT].shareFolder_btn:pressed, +Button[PUSH][FLAT].bookmarkFolder_btn:pressed, Button[PUSH][FLAT].shareFolder_btn:pressed, Button[PUSH][FLAT].downloadFolder_btn:pressed, Button[PUSH][FLAT].delete_btn:pressed, Button[PUSH][FLAT].uploadFiles_btn:pressed, -Button[PUSH][FLAT].open_btn:pressed, -Button[PUSH][FLAT].createFolder_btn:pressed { +Button[PUSH][FLAT].open_btn:pressed { background-color: #fde2d5; } -/*******************************/ -/* People Generic Styling **/ -/*******************************/ +/* PEOPLE **/ /** TEXTS **/ diff --git a/pom.xml b/pom.xml index 14d4581..a0e84ca 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.argeo.commons argeo-commons - 2.1.58 + 2.1.59-SNAPSHOT org.argeo.suite argeo-suite -- 2.30.2