import javax.jcr.Property;
import javax.jcr.PropertyType;
-import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.observation.Event;
import javax.jcr.observation.EventListener;
import javax.jcr.observation.ObservationManager;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.argeo.ArgeoException;
import org.argeo.eclipse.ui.TreeParent;
import org.argeo.eclipse.ui.jcr.AsyncUiEventListener;
import org.argeo.eclipse.ui.jcr.utils.NodeViewerComparer;
import org.argeo.eclipse.ui.jcr.views.AbstractJcrBrowser;
-import org.argeo.eclipse.ui.specific.FileHandler;
-import org.argeo.jcr.ArgeoJcrConstants;
-import org.argeo.jcr.JcrUtils;
import org.argeo.jcr.RepositoryRegister;
+import org.argeo.jcr.security.JcrKeyring;
import org.argeo.jcr.ui.explorer.browser.NodeContentProvider;
import org.argeo.jcr.ui.explorer.browser.NodeLabelProvider;
import org.argeo.jcr.ui.explorer.browser.PropertiesContentProvider;
import org.argeo.jcr.ui.explorer.model.SingleJcrNode;
import org.argeo.jcr.ui.explorer.utils.GenericNodeDoubleClickListener;
-import org.argeo.jcr.ui.explorer.utils.JcrFileProvider;
import org.argeo.jcr.ui.explorer.utils.JcrUiUtils;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.viewers.ColumnLabelProvider;
*/
public class GenericJcrBrowser extends AbstractJcrBrowser {
- private final static Log log = LogFactory.getLog(GenericJcrBrowser.class);
+ // private final static Log log =
+ // LogFactory.getLog(GenericJcrBrowser.class);
/* DEPENDENCY INJECTION */
- private Session session;
+ private JcrKeyring jcrKeyring;
private RepositoryRegister repositoryRegister;
// This page widgets
private EventListener resultsObserver;
// Manage documents
- private JcrFileProvider jcrFileProvider;
- private FileHandler fileHandler;
+ // private JcrFileProvider jcrFileProvider;
+ // private FileHandler fileHandler;
@Override
public void createPartControl(Composite parent) {
// look for session
- Session nodeSession = session;
- if (nodeSession == null) {
- Repository nodeRepository = JcrUtils.getRepositoryByAlias(
- repositoryRegister, ArgeoJcrConstants.ALIAS_NODE);
- if (nodeRepository != null)
- try {
- nodeSession = nodeRepository.login();
- // TODO : enhance that to enable multirepository listener.
- session = nodeSession;
- } catch (RepositoryException e1) {
- throw new ArgeoException("Cannot login to node repository");
- }
- }
+ Session nodeSession = jcrKeyring != null ? jcrKeyring.getSession()
+ : null;
+ // if (nodeSession == null) {
+ // Repository nodeRepository = JcrUtils.getRepositoryByAlias(
+ // repositoryRegister, ArgeoJcrConstants.ALIAS_NODE);
+ // if (nodeRepository != null)
+ // try {
+ // nodeSession = nodeRepository.login();
+ // // TODO : enhance that to enable multirepository listener.
+ // session = nodeSession;
+ // } catch (RepositoryException e1) {
+ // throw new ArgeoException("Cannot login to node repository");
+ // }
+ // }
// Instantiate the generic object that fits for
// both RCP & RAP
// Note that in RAP, it registers a service handler that provide the
// access to the files.
- jcrFileProvider = new JcrFileProvider();
- fileHandler = new FileHandler(jcrFileProvider);
+ // jcrFileProvider = new JcrFileProvider();
+ // fileHandler = new FileHandler(jcrFileProvider);
parent.setLayout(new FillLayout());
SashForm sashForm = new SashForm(parent, SWT.VERTICAL);
GridLayout gl = new GridLayout(1, false);
top.setLayout(gl);
- nodeContentProvider = new NodeContentProvider(nodeSession,
+ nodeContentProvider = new NodeContentProvider(jcrKeyring,
repositoryRegister);
// nodes viewer
nodesViewer = createNodeViewer(top, nodeContentProvider);
- // context menu
+ // context menu : it is completely defined in the plugin.xml file.
MenuManager menuManager = new MenuManager();
Menu menu = menuManager.createContextMenu(nodesViewer.getTree());
+
nodesViewer.getTree().setMenu(menu);
getSite().registerContextMenu(menuManager, nodesViewer);
getSite().setSelectionProvider(nodesViewer);
return new int[] { 70, 30 };
}
- // @Override
- // public void setFocus() {
- // nodesViewer.getTree().setFocus();
- // }
- //
- // /*
- // * NOTIFICATION
- // */
- // public void refresh(Object obj) {
- // nodesViewer.refresh(obj);
- // }
- //
- // public void nodeAdded(Node parentNode, Node newNode) {
- // nodesViewer.refresh(parentNode);
- // nodesViewer.expandToLevel(newNode, 0);
- // }
- //
- // public void nodeRemoved(Node parentNode) {
- //
- // IStructuredSelection newSel = new StructuredSelection(parentNode);
- // nodesViewer.setSelection(newSel, true);
- // // Force refresh
- // IStructuredSelection tmpSel = (IStructuredSelection) nodesViewer
- // .getSelection();
- // nodesViewer.refresh(tmpSel.getFirstElement());
- // }
-
- // private JcrFileProvider getJcrFileProvider() {
- // return jcrFileProvider;
- // }
- //
- // private FileHandler getFileHandler() {
- // return fileHandler;
- // }
-
protected TreeViewer createNodeViewer(Composite parent,
final ITreeContentProvider nodeContentProvider) {
});
resultsObserver = new TreeObserver(tmpNodeViewer.getTree().getDisplay());
- try {
- ObservationManager observationManager = session.getWorkspace()
- .getObservationManager();
- observationManager.addEventListener(resultsObserver,
- Event.PROPERTY_ADDED | Event.PROPERTY_CHANGED, "/", true,
- null, null, false);
- } catch (RepositoryException e) {
- throw new ArgeoException("Cannot register listeners", e);
- }
+ if (jcrKeyring != null)
+ try {
+ ObservationManager observationManager = jcrKeyring.getSession()
+ .getWorkspace().getObservationManager();
+ observationManager.addEventListener(resultsObserver,
+ Event.PROPERTY_ADDED | Event.PROPERTY_CHANGED, "/",
+ true, null, null, false);
+ } catch (RepositoryException e) {
+ throw new ArgeoException("Cannot register listeners", e);
+ }
tmpNodeViewer
.addDoubleClickListener(new GenericNodeDoubleClickListener(
this.repositoryRegister = repositoryRegister;
}
- public void setSession(Session session) {
- this.session = session;
+ public void setJcrKeyring(JcrKeyring jcrKeyring) {
+ this.jcrKeyring = jcrKeyring;
}
}