Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/org.eclipse.emf.cdo.dawn.ui/src/org/eclipse/emf/cdo/dawn/ui/views/DawnExplorer.java305
-rw-r--r--plugins/org.eclipse.emf.cdo.dawn.ui/src/org/eclipse/emf/cdo/dawn/ui/views/DawnItemProvider.java153
2 files changed, 249 insertions, 209 deletions
diff --git a/plugins/org.eclipse.emf.cdo.dawn.ui/src/org/eclipse/emf/cdo/dawn/ui/views/DawnExplorer.java b/plugins/org.eclipse.emf.cdo.dawn.ui/src/org/eclipse/emf/cdo/dawn/ui/views/DawnExplorer.java
index 0824bf44d5..76c85e0df3 100644
--- a/plugins/org.eclipse.emf.cdo.dawn.ui/src/org/eclipse/emf/cdo/dawn/ui/views/DawnExplorer.java
+++ b/plugins/org.eclipse.emf.cdo.dawn.ui/src/org/eclipse/emf/cdo/dawn/ui/views/DawnExplorer.java
@@ -1,132 +1,173 @@
-/*
- * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- */
-package org.eclipse.emf.cdo.dawn.ui.views;
-
-import org.eclipse.emf.cdo.dawn.internal.ui.bundle.OM;
-import org.eclipse.emf.cdo.dawn.preferences.PreferenceConstants;
-import org.eclipse.emf.cdo.dawn.ui.DawnEditorInput;
-import org.eclipse.emf.cdo.dawn.ui.helper.EditorDescriptionHelper;
-import org.eclipse.emf.cdo.dawn.util.connection.CDOConnectionUtil;
-import org.eclipse.emf.cdo.eresource.CDOResource;
-import org.eclipse.emf.cdo.internal.ui.editor.CDOEditor;
-import org.eclipse.emf.cdo.internal.ui.views.CDOSessionsView;
-import org.eclipse.emf.cdo.session.CDOSession;
-import org.eclipse.emf.cdo.transaction.CDOTransaction;
-import org.eclipse.emf.cdo.ui.CDOEditorInput;
-import org.eclipse.emf.cdo.ui.CDOEditorUtil;
-import org.eclipse.emf.cdo.view.CDOView;
-
-import org.eclipse.net4j.util.container.IContainer;
-import org.eclipse.net4j.util.om.trace.ContextTracer;
-import org.eclipse.net4j.util.ui.views.ContainerItemProvider;
-import org.eclipse.net4j.util.ui.views.IElementFilter;
-
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.PartInitException;
-
-/**
- * @author Martin Fluegge
- */
-public class DawnExplorer extends CDOSessionsView
-{
- private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG, DawnExplorer.class);
-
- public static final String ID = "org.eclipse.emf.cdo.dawn.ui.views.DawnExplorer";
-
- private CDOView view;
-
- public CDOView getView()
- {
- return view;
- }
-
- /**
- * The constructor.
- */
- public DawnExplorer()
- {
- CDOConnectionUtil.instance.init(PreferenceConstants.getRepositoryName(), PreferenceConstants.getProtocol(),
- PreferenceConstants.getServerName());
- CDOSession session = CDOConnectionUtil.instance.openSession();
- view = CDOConnectionUtil.instance.openView(session);
- }
-
- @Override
- public void dispose()
- {
- // actually no one else should use this view
- view.close();
- }
-
- @Override
- protected ContainerItemProvider<IContainer<Object>> createContainerItemProvider()
- {
- return new DawnItemProvider(getSite().getPage(), this, new IElementFilter()
- {
- public boolean filter(Object element)
- {
- return element instanceof CDOSession;
- }
- });
- }
-
- @Override
- protected void hookDoubleClick()
- {
- getViewer().addDoubleClickListener(new IDoubleClickListener()
- {
- public void doubleClick(DoubleClickEvent event)
- {
- Object obj = ((IStructuredSelection)event.getSelection()).getFirstElement();
- if (obj instanceof CDOResource)
- {
- CDOResource resource = (CDOResource)obj;
-
- if (TRACER.isEnabled())
- {
- TRACER.format("Opening CDOResource {0} ", resource); //$NON-NLS-1$
- }
-
- String editorID = EditorDescriptionHelper.getEditorIdForDawnEditor(resource.getName());
-
- if (editorID != null && !editorID.equals(""))
- {
- try
- {
- DawnEditorInput editorInput = new DawnEditorInput(resource.getURI());
- DawnExplorer.this.getSite().getPage().openEditor(editorInput, editorID);
- }
- catch (PartInitException e)
- {
- e.printStackTrace();
- }
- }
- else
- {
- CDOTransaction transaction = view.getSession().openTransaction();
- CDOEditorInput editorInput = CDOEditorUtil.createCDOEditorInput(transaction, ((CDOResource)obj).getPath(),
- true);
- try
- {
- DawnExplorer.this.getSite().getPage().openEditor(editorInput, CDOEditor.EDITOR_ID);
- }
- catch (PartInitException e)
- {
- e.printStackTrace();
- }
- }
- }
- }
- });
- }
-}
+/*
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Fluegge - initial API and implementation
+ */
+package org.eclipse.emf.cdo.dawn.ui.views;
+
+import org.eclipse.emf.cdo.dawn.internal.ui.bundle.OM;
+import org.eclipse.emf.cdo.dawn.preferences.PreferenceConstants;
+import org.eclipse.emf.cdo.dawn.ui.DawnEditorInput;
+import org.eclipse.emf.cdo.dawn.ui.helper.EditorDescriptionHelper;
+import org.eclipse.emf.cdo.dawn.util.connection.CDOConnectionUtil;
+import org.eclipse.emf.cdo.eresource.CDOResource;
+import org.eclipse.emf.cdo.internal.ui.editor.CDOEditor;
+import org.eclipse.emf.cdo.internal.ui.views.CDOSessionsView;
+import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.cdo.transaction.CDOTransaction;
+import org.eclipse.emf.cdo.ui.CDOEditorInput;
+import org.eclipse.emf.cdo.ui.CDOEditorUtil;
+import org.eclipse.emf.cdo.view.CDOView;
+
+import org.eclipse.net4j.connector.ConnectorException;
+import org.eclipse.net4j.util.container.IContainer;
+import org.eclipse.net4j.util.om.trace.ContextTracer;
+import org.eclipse.net4j.util.ui.views.ContainerItemProvider;
+import org.eclipse.net4j.util.ui.views.IElementFilter;
+
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.PartInitException;
+
+/**
+ * @author Martin Fluegge
+ */
+public class DawnExplorer extends CDOSessionsView
+{
+ private static final int DEFAULT_SLEEP_INTERVAL = 5000;
+
+ private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG, DawnExplorer.class);
+
+ public static final String ID = "org.eclipse.emf.cdo.dawn.ui.views.DawnExplorer";
+
+ private CDOView view;
+
+ public CDOView getView()
+ {
+ return view;
+ }
+
+ /**
+ * The constructor.
+ */
+ public DawnExplorer()
+ {
+ boolean initialize = initialize();
+
+ if (!initialize)
+ {
+ Thread thread = new Thread(new Runnable()
+ {
+ public void run()
+ {
+ while (!initialize())
+ {
+ try
+ {
+ Thread.sleep(DEFAULT_SLEEP_INTERVAL);
+ }
+ catch (InterruptedException ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+ }
+ });
+ thread.start();
+ }
+ }
+
+ /**
+ * Initializes the view of the DawnExplorer
+ */
+ private boolean initialize()
+ {
+ try
+ {
+ CDOConnectionUtil.instance.init(PreferenceConstants.getRepositoryName(), PreferenceConstants.getProtocol(),
+ PreferenceConstants.getServerName());
+ CDOSession session = CDOConnectionUtil.instance.openSession();
+ view = CDOConnectionUtil.instance.openView(session);
+ }
+ catch (ConnectorException ex)
+ {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public void dispose()
+ {
+ // actually no one else should use this view
+ view.close();
+ }
+
+ @Override
+ protected ContainerItemProvider<IContainer<Object>> createContainerItemProvider()
+ {
+ return new DawnItemProvider(getSite().getPage(), this, new IElementFilter()
+ {
+ public boolean filter(Object element)
+ {
+ return element instanceof CDOSession;
+ }
+ });
+ }
+
+ @Override
+ protected void hookDoubleClick()
+ {
+ getViewer().addDoubleClickListener(new IDoubleClickListener()
+ {
+ public void doubleClick(DoubleClickEvent event)
+ {
+ Object obj = ((IStructuredSelection)event.getSelection()).getFirstElement();
+ if (obj instanceof CDOResource)
+ {
+ CDOResource resource = (CDOResource)obj;
+
+ if (TRACER.isEnabled())
+ {
+ TRACER.format("Opening CDOResource {0} ", resource); //$NON-NLS-1$
+ }
+
+ String editorID = EditorDescriptionHelper.getEditorIdForDawnEditor(resource.getName());
+
+ if (editorID != null && !editorID.equals(""))
+ {
+ try
+ {
+ DawnEditorInput editorInput = new DawnEditorInput(resource.getURI());
+ DawnExplorer.this.getSite().getPage().openEditor(editorInput, editorID);
+ }
+ catch (PartInitException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ else
+ {
+ CDOTransaction transaction = view.getSession().openTransaction();
+ CDOEditorInput editorInput = CDOEditorUtil.createCDOEditorInput(transaction, ((CDOResource)obj).getPath(),
+ true);
+ try
+ {
+ DawnExplorer.this.getSite().getPage().openEditor(editorInput, CDOEditor.EDITOR_ID);
+ }
+ catch (PartInitException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+ });
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.dawn.ui/src/org/eclipse/emf/cdo/dawn/ui/views/DawnItemProvider.java b/plugins/org.eclipse.emf.cdo.dawn.ui/src/org/eclipse/emf/cdo/dawn/ui/views/DawnItemProvider.java
index 86b384711f..4230539e68 100644
--- a/plugins/org.eclipse.emf.cdo.dawn.ui/src/org/eclipse/emf/cdo/dawn/ui/views/DawnItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.dawn.ui/src/org/eclipse/emf/cdo/dawn/ui/views/DawnItemProvider.java
@@ -1,77 +1,76 @@
-/*
- * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- */
-package org.eclipse.emf.cdo.dawn.ui.views;
-
-import org.eclipse.emf.cdo.dawn.ui.helper.EditorDescriptionHelper;
-import org.eclipse.emf.cdo.eresource.CDOResource;
-import org.eclipse.emf.cdo.eresource.CDOResourceFolder;
-import org.eclipse.emf.cdo.session.CDOSession;
-import org.eclipse.emf.cdo.ui.CDOItemProvider;
-
-import org.eclipse.net4j.util.ui.views.IElementFilter;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IWorkbenchPage;
-
-/**
- * @author Martin Fluegge
- */
-public class DawnItemProvider extends CDOItemProvider
-{
- private final DawnExplorer dawnExplorer;
-
- public DawnItemProvider(IWorkbenchPage page, DawnExplorer dawnExplorer, IElementFilter rootElementFilter)
- {
- super(page, rootElementFilter);
- this.dawnExplorer = dawnExplorer;
- }
-
- @Override
- public Object[] getChildren(Object element)
- {
- // if (element instanceof CDOView)
- // {
- // return ((CDOView)element).getRootResource().getContents().toArray();
- // }
-
- if (element instanceof CDOResourceFolder)
- {
- return ((CDOResourceFolder)element).getNodes().toArray();
- }
-
- if (element instanceof CDOSession)
- {
- CDOSession session = (CDOSession)element;
- Object[] child = new Object[1];
- child[0] = session.getView(dawnExplorer.getView().getViewID());
- return child;
- }
-
- return super.getChildren(element);
- }
-
- @Override
- public Image getImage(Object obj)
- {
-
- if (obj instanceof CDOResource)
- {
- CDOResource resource = (CDOResource)obj;
- Image img = EditorDescriptionHelper.getImageForEditor(resource.getName());
- if (img != null)
- {
- return img;
- }
- }
-
- return super.getImage(obj);
- }
-}
+/*
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Fluegge - initial API and implementation
+ */
+package org.eclipse.emf.cdo.dawn.ui.views;
+
+import org.eclipse.emf.cdo.dawn.ui.helper.EditorDescriptionHelper;
+import org.eclipse.emf.cdo.eresource.CDOResource;
+import org.eclipse.emf.cdo.eresource.CDOResourceFolder;
+import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.cdo.ui.CDOItemProvider;
+
+import org.eclipse.net4j.util.ui.views.IElementFilter;
+
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.IWorkbenchPage;
+
+/**
+ * @author Martin Fluegge
+ */
+public class DawnItemProvider extends CDOItemProvider
+{
+ private final DawnExplorer dawnExplorer;
+
+ public DawnItemProvider(IWorkbenchPage page, DawnExplorer dawnExplorer, IElementFilter rootElementFilter)
+ {
+ super(page, rootElementFilter);
+ this.dawnExplorer = dawnExplorer;
+ }
+
+ @Override
+ public Object[] getChildren(Object element)
+ {
+ // if (element instanceof CDOView)
+ // {
+ // return ((CDOView)element).getRootResource().getContents().toArray();
+ // }
+
+ if (element instanceof CDOResourceFolder)
+ {
+ return ((CDOResourceFolder)element).getNodes().toArray();
+ }
+
+ if (element instanceof CDOSession)
+ {
+ CDOSession session = (CDOSession)element;
+ Object[] child = new Object[1];
+ child[0] = session.getView(dawnExplorer.getView().getViewID());
+ return child;
+ }
+
+ return super.getChildren(element);
+ }
+
+ @Override
+ public Image getImage(Object obj)
+ {
+ if (obj instanceof CDOResource)
+ {
+ CDOResource resource = (CDOResource)obj;
+ Image img = EditorDescriptionHelper.getImageForEditor(resource.getName());
+ if (img != null)
+ {
+ return img;
+ }
+ }
+
+ return super.getImage(obj);
+ }
+}

Back to the top