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/JpaDetailsView.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/JpaDetailsView.java167
1 files changed, 0 insertions, 167 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/JpaDetailsView.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/JpaDetailsView.java
deleted file mode 100644
index d4654f079f..0000000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/views/JpaDetailsView.java
+++ /dev/null
@@ -1,167 +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.Iterator;
-import java.util.Map;
-import org.eclipse.jpt.core.internal.IJpaContentNode;
-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.details.IJpaDetailsPage;
-import org.eclipse.jpt.ui.internal.details.IJpaDetailsProvider;
-import org.eclipse.jpt.ui.internal.selection.Selection;
-import org.eclipse.jpt.utility.internal.iterators.CloneIterator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-
-public class JpaDetailsView extends AbstractJpaView
-{
- private Selection currentSelection;
-
- private IJpaDetailsPage currentPage;
-
- /* key: String file content id, value: IJpaDetailsProvider */
- private Map<String, IJpaDetailsProvider> detailsProviders;
-
- /* key: Object content node id, value: Composite page */
- private Map<Object, IJpaDetailsPage> detailsPages;
-
- public JpaDetailsView() {
- super(JptUiMessages.JpaDetailsView_viewNotAvailable);
- this.currentSelection = Selection.NULL_SELECTION;
- this.detailsProviders = new HashMap<String, IJpaDetailsProvider>();
- this.detailsPages = new HashMap<Object, IJpaDetailsPage>();
- }
-
-
- public Selection getSelection() {
- return currentSelection;
- }
-
- public void select(Selection newSelection) {
- if (newSelection.equals(currentSelection)) {
- return;
- }
-
- currentSelection = newSelection;
-
- if (newSelection != Selection.NULL_SELECTION) {
- IJpaContentNode newNode = newSelection.getSelectedNode();
- IJpaDetailsPage newPage = getDetailsPage(newNode);
- setCurrentPage(newPage);
- }
- else if (currentSelection != Selection.NULL_SELECTION) {
- setCurrentPage(null);
- }
- }
-
- private IJpaDetailsPage getDetailsPage(IJpaContentNode contentNode) {
- if (detailsPages.containsKey(contentNode.getId())) {
- IJpaDetailsPage page = detailsPages.get(contentNode.getId());
-
- if ((page != null) &&
- (page.getControl().isDisposed())) {
- detailsPages.remove(contentNode.getId());
- }
- else {
- return page;
- }
- }
-
- return buildDetailsPage(contentNode);
- }
-
- private IJpaDetailsPage buildDetailsPage(IJpaContentNode contentNode) {
- IJpaDetailsProvider detailsProvider =
- getDetailsProvider(contentNode);
-
- if (detailsProvider == null) {
- return null;
- }
- Composite parentComposite = getWidgetFactory().createComposite(pageBook, SWT.NONE);
- parentComposite.setLayout(new FillLayout(SWT.VERTICAL));
- IJpaDetailsPage page =
- detailsProvider.buildDetailsPage(parentComposite, contentNode.getId(), getWidgetFactory());
-
- if (page != null) {
- detailsPages.put(contentNode.getId(), page);
- }
-
- return page;
- }
-
- private IJpaDetailsProvider getDetailsProvider(IJpaContentNode contentNode) {
- String contentId = contentNode.getJpaFile().getContentId();
- IJpaDetailsProvider provider = detailsProviders.get(contentId);
-
- if (provider == null) {
- String platformId = contentNode.getJpaProject().getPlatform().getId();
- IJpaPlatformUi jpaPlatformUI = PlatformRegistry.INSTANCE.getJpaPlatform(platformId);
- for (IJpaDetailsProvider p : jpaPlatformUI.detailsProviders()) {
- 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) {
- detailsProviders.put(contentId, provider);
- }
- }
-
- return provider;
- }
-
- private void setCurrentPage(IJpaDetailsPage newPage) {
- // depopulate old page
- if ((currentPage != null) && (currentPage != newPage)) {
- currentPage.populate(null);
- }
-
- // populate new page
- if (newPage != null) {
- newPage.populate(currentSelection.getSelectedNode());
- }
-
- currentPage = newPage;
-
- // show new page
- if (newPage == null) {
- showDefaultPage();
- }
- else {
- pageBook.showPage(newPage.getControl().getParent());
- }
- }
-
- public void dispose() {
- for (Iterator<String> stream = new CloneIterator<String>(detailsProviders.keySet()); stream.hasNext(); ) {
- String key = stream.next();
- IJpaDetailsProvider provider = detailsProviders.remove(key);
- provider.dispose();
- }
-
- for (Iterator<Object> stream = new CloneIterator<Object>(detailsPages.keySet()); stream.hasNext(); ) {
- Object key = stream.next();
- IJpaDetailsPage detailsPage = detailsPages.remove(key);
- detailsPage.dispose();
- }
-
- currentSelection = Selection.NULL_SELECTION;
- currentPage = null;
-
- super.dispose();
- }
-}

Back to the top