Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/JpaStructureView.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/JpaStructureView.java223
1 files changed, 0 insertions, 223 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/JpaStructureView.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/JpaStructureView.java
deleted file mode 100644
index 154ada0ab3..0000000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/JpaStructureView.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Oracle. 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: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.ui.internal.views;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ITreeSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jpt.core.internal.IJpaContentNode;
-import org.eclipse.jpt.core.internal.IJpaFile;
-import org.eclipse.jpt.ui.internal.IJpaPlatformUi;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.ui.internal.PlatformRegistry;
-import org.eclipse.jpt.ui.internal.jface.NullLabelProvider;
-import org.eclipse.jpt.ui.internal.jface.NullTreeContentProvider;
-import org.eclipse.jpt.ui.internal.selection.Selection;
-import org.eclipse.jpt.ui.internal.structure.IJpaStructureProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchActionConstants;
-
-public class JpaStructureView extends AbstractJpaView
-{
- private StructureComposite structureComposite;
-
-
- public JpaStructureView() {
- super(JptUiMessages.JpaStructureView_viewNotAvailable);
- }
-
-
- @Override
- public void subcreatePartControl(Composite parent) {
- structureComposite =
- new StructureComposite(pageBook, SWT.NULL);
- }
-
- public Selection getSelection() {
- if (structureComposite.isVisible()) {
- return structureComposite.getSelection();
- }
- else {
- return Selection.NULL_SELECTION;
- }
- }
-
- @Override
- public void select(Selection newSelection) {
- Selection currentSelection = getSelection();
-
- if (newSelection.equals(currentSelection)) {
- return;
- }
-
- if (newSelection == Selection.NULL_SELECTION) {
- showDefaultPage();
- }
- else {
- pageBook.showPage(structureComposite);
- }
-
- structureComposite.select(newSelection);
- }
-
-
- public void addSelectionChangedListener(ISelectionChangedListener listener) {
- structureComposite.viewer.addSelectionChangedListener(listener);
- }
-
- public void removeSelectionChangedListener(ISelectionChangedListener listener) {
- structureComposite.viewer.removeSelectionChangedListener(listener);
- }
-
-
- private class StructureComposite extends Composite
- {
- /* key: String file content id, value: IJpaStructureProvider */
- private Map structureProviders;
-
- private TreeViewer viewer;
-
- private StructureComposite(Composite parent, int style) {
- super(parent, style);
-
- structureProviders = new HashMap();
-
- this.setLayout(new FillLayout());
-
- viewer = new TreeViewer(this, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
- viewer.setAutoExpandLevel(2);
- initContextMenu();
- }
-
- protected void initContextMenu() {
- // Create dynamic menu mgr. Dynamic is currently required to
- // support action contributions.
- MenuManager mgr = new MenuManager();
- mgr.setRemoveAllWhenShown(true);
- mgr.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager mgr) {
- fillContextMenu(mgr);
- }
- });
- Menu menu = mgr.createContextMenu(viewer.getControl());
- viewer.getControl().setMenu(menu);
- getSite().registerContextMenu(mgr, viewer);
-
- }
-
- /**
- * Called when the context menu is about to open.
- * Delegates to the action group using the viewer's selection as the action context.
- * @since 2.0
- */
- protected void fillContextMenu(IMenuManager manager) {
- manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
- }
-
- private Selection getSelection() {
- ITreeSelection viewerSelection = (ITreeSelection) viewer.getSelection();
-
- if (viewerSelection.isEmpty() || viewerSelection.size() > 1) {
- if (viewer.getInput() == null) {
- return Selection.NULL_SELECTION;
- }
- else {
- return new Selection((IJpaContentNode) viewer.getInput());
- }
- }
-
- else {
- return new Selection((IJpaContentNode) viewerSelection.getFirstElement());
- }
-
- }
-
- private void select(Selection selection) {
- // note: checks for null and equals() selection have already been performed
-
- if (selection.equals(Selection.NULL_SELECTION)) {
- clearViewer();
- return;
- }
-
- Selection currentSelection = getSelection();
- IJpaContentNode newNode = selection.getSelectedNode();
- IJpaFile newFile = newNode.getJpaFile();
- IJpaContentNode currentNode =
- (currentSelection == Selection.NULL_SELECTION) ?
- null : getSelection().getSelectedNode();
- IJpaFile currentFile =
- (currentNode == null) ?
- null : currentNode.getJpaFile();
-
- if (newFile.equals(currentFile)) {
- viewer.setSelection(new StructuredSelection(newNode), true);
- }
- else if (currentFile != null && newFile.getContentId().equals(currentFile.getContentId())) {
- viewer.setInput(newFile.getContent());
- viewer.setSelection(new StructuredSelection(newNode), true);
- }
- else {
- // new content type
- // replace composite and set selection of tree
- IJpaStructureProvider provider = getStructureProvider(newNode);
-
- if (provider == null) {
- clearViewer();
- }
- else {
- viewer.setContentProvider(provider.buildContentProvider());
- viewer.setLabelProvider(provider.buildLabelProvider());
- viewer.setInput(newFile.getContent());
- }
- }
- }
-
- private void clearViewer() {
- viewer.setContentProvider(NullTreeContentProvider.INSTANCE);
- viewer.setLabelProvider(NullLabelProvider.INSTANCE);
- viewer.setInput(null);
- }
-
- private IJpaStructureProvider getStructureProvider(IJpaContentNode contentNode) {
- String contentId = contentNode.getJpaFile().getContentId();
- IJpaStructureProvider provider =
- (IJpaStructureProvider) structureProviders.get(contentId);
-
- if (provider == null) {
- String vendorId = contentNode.getJpaProject().getPlatform().getId();
- IJpaPlatformUi jpaPlatformUI = PlatformRegistry.INSTANCE.getJpaPlatform(vendorId);
- for (IJpaStructureProvider p : jpaPlatformUI.structureProviders()) {
- if (p.fileContentType().equals(contentId)) {
- provider = p;
- break;
- }
- }
-
- //TODO this view and the detailsProviders Map is not created on a per project basis.
- //the detailsProviders and their fileContentTypes could overlap across project, this would cause problems with storing this map.
- if (provider != null) {
- structureProviders.put(contentId, provider);
- }
- }
-
- return provider;
- }
- }
-}

Back to the top