diff options
author | Eike Stepper | 2015-02-09 14:01:47 +0000 |
---|---|---|
committer | Eike Stepper | 2015-02-09 14:02:37 +0000 |
commit | 692936559e9d95c053e64fc3cd759cce45b754e0 (patch) | |
tree | d839aea9198a65da42b5a4647d177eb91dbdd75a | |
parent | 63c78cb19b9c03961d5929aeefb535b7b578f33f (diff) | |
download | cdo-692936559e9d95c053e64fc3cd759cce45b754e0.tar.gz cdo-692936559e9d95c053e64fc3cd759cce45b754e0.tar.xz cdo-692936559e9d95c053e64fc3cd759cce45b754e0.zip |
[458349] Consolidate UI
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=458349
3 files changed, 58 insertions, 5 deletions
diff --git a/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/repositories/CDORepositoriesView.java b/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/repositories/CDORepositoriesView.java index d3c03de08f..04fa5d5cb4 100644 --- a/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/repositories/CDORepositoriesView.java +++ b/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/repositories/CDORepositoriesView.java @@ -18,7 +18,6 @@ import org.eclipse.emf.cdo.explorer.ui.repositories.wizards.NewRepositoryWizard; import org.eclipse.emf.cdo.internal.explorer.repositories.CDORepositoryManagerImpl; import org.eclipse.net4j.util.container.IContainer; -import org.eclipse.net4j.util.container.IPluginContainer; import org.eclipse.net4j.util.ui.views.ContainerItemProvider; import org.eclipse.net4j.util.ui.views.ContainerView; @@ -55,8 +54,6 @@ public class CDORepositoriesView extends ContainerView public CDORepositoriesView() { - int xxx; - IPluginContainer.INSTANCE.getElement("org.eclipse.emf.cdo.server.browsers", "default", "7778"); } private static int getRepositoryTimeoutMillis() @@ -73,7 +70,7 @@ public class CDORepositoriesView extends ContainerView @Override protected ContainerItemProvider<IContainer<Object>> createContainerItemProvider() { - itemProvider = new CDORepositoryItemProvider(); + itemProvider = new CDORepositoryItemProvider(this); return itemProvider; } diff --git a/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/repositories/CDORepositoryItemProvider.java b/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/repositories/CDORepositoryItemProvider.java index b0ff1ed40e..1d192464b6 100644 --- a/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/repositories/CDORepositoryItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/repositories/CDORepositoryItemProvider.java @@ -29,6 +29,7 @@ import org.eclipse.net4j.util.ui.UIUtil; import org.eclipse.net4j.util.ui.views.ContainerItemProvider; import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; @@ -72,6 +73,7 @@ public class CDORepositoryItemProvider extends ContainerItemProvider<IContainer< } ViewerUtil.refresh(viewer, repository); + updatePropertySheetPage(repository); } else if (event instanceof CDOExplorerManager.ElementChangedEvent) { @@ -81,12 +83,35 @@ public class CDORepositoryItemProvider extends ContainerItemProvider<IContainer< Object changedElement = e.getChangedElement(); ViewerUtil.update(viewer, changedElement); + updatePropertySheetPage(changedElement); } } + + private void updatePropertySheetPage(final Object element) + { + getDisplay().asyncExec(new Runnable() + { + public void run() + { + IStructuredSelection selection = (IStructuredSelection)repositoriesView.getSelection(); + for (Object object : selection.toArray()) + { + if (object == element) + { + repositoriesView.refreshPropertySheetPage(); + return; + } + } + } + }); + } }; - public CDORepositoryItemProvider() + private final CDORepositoriesView repositoriesView; + + public CDORepositoryItemProvider(CDORepositoriesView repositoriesView) { + this.repositoriesView = repositoriesView; } @Override diff --git a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerView.java b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerView.java index b3156ded40..96a202db12 100644 --- a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerView.java +++ b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerView.java @@ -56,6 +56,8 @@ import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.part.ISetSelectionTarget; import org.eclipse.ui.part.ViewPart; +import org.eclipse.ui.views.properties.IPropertySheetPage; +import org.eclipse.ui.views.properties.PropertySheetPage; public abstract class ContainerView extends ViewPart implements ISelectionProvider, ISetSelectionTarget { @@ -79,6 +81,8 @@ public abstract class ContainerView extends ViewPart implements ISelectionProvid private Action collapseAllAction = new CollapseAllAction(); + private PropertySheetPage propertySheetPage; + public ContainerView() { } @@ -559,6 +563,33 @@ public abstract class ContainerView extends ViewPart implements ISelectionProvid return display; } + @Override + public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) + { + if (adapter == IPropertySheetPage.class) + { + if (propertySheetPage == null) + { + propertySheetPage = new PropertySheetPage(); + } + + return propertySheetPage; + } + + return super.getAdapter(adapter); + } + + /** + * @since 3.5 + */ + public void refreshPropertySheetPage() + { + if (propertySheetPage != null) + { + propertySheetPage.refresh(); + } + } + public void refreshViewer(boolean updateLabels) { itemProvider.refreshViewer(updateLabels); |