Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JptUiPlugin.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JptUiPlugin.java226
1 files changed, 0 insertions, 226 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JptUiPlugin.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JptUiPlugin.java
deleted file mode 100644
index 4a686b8748..0000000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/JptUiPlugin.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 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;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jpt.core.JpaPlatform;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.ui.internal.platform.JpaPlatformUiRegistry;
-import org.eclipse.jpt.ui.navigator.JpaNavigatorProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * Dali UI plug-in.
- * <p>
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-@SuppressWarnings("nls")
-public class JptUiPlugin
- extends AbstractUIPlugin
-{
- private final Listener focusListener;
-
-
- // ********** constants **********
-
- /**
- * The plug-in identifier of JPA UI support (value {@value}).
- */
- public static final String PLUGIN_ID = "org.eclipse.jpt.ui";
- public static final String PLUGIN_ID_ = PLUGIN_ID + '.';
-
- private static final String FOCUS_DATA_KEY = PLUGIN_ID_ + "focus";
- private static final Object FOCUS_DATA = new Object();
-
-
- // ********** singleton **********
-
- private static JptUiPlugin INSTANCE;
-
- /**
- * Returns the singleton JPT UI plug-in.
- */
- public static JptUiPlugin instance() {
- return INSTANCE;
- }
-
-
- // ********** logging **********
-
- public static void log(IStatus status) {
- INSTANCE.getLog().log(status);
- }
-
- public static void log(String msg) {
- log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null));
- }
-
- public static void log(Throwable throwable) {
- log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, throwable.getLocalizedMessage(), throwable));
- }
-
-
- // ********** images **********
-
- /**
- * Return an image descriptor for the specified <code>.gif<code>
- * file in the icons folder.
- */
- public static ImageDescriptor getImageDescriptor(String key) {
- if ( ! key.startsWith("icons/")) {
- key = "icons/" + key;
- }
- if ( ! key.endsWith(".gif")) {
- key = key + ".gif";
- }
- return imageDescriptorFromPlugin(PLUGIN_ID, key);
- }
-
- /**
- * Return an image for the specified <code>.gif<code>
- * file in the icons folder.
- */
- public static Image getImage(String key) {
- ImageDescriptor descriptor = getImageDescriptor(key);
- return (descriptor == null) ? null : descriptor.createImage();
- }
-
-
- // ********** construction **********
-
- public JptUiPlugin() {
- super();
- this.focusListener = this.buildFocusListener();
- if (INSTANCE != null) {
- throw new IllegalStateException();
- }
- INSTANCE = this;
- }
-
- /**
- * We are registered to receive only {@link SWT#FocusIn} events
- */
- private Listener buildFocusListener() {
- return new Listener() {
- public void handleEvent(Event event) {
- JptUiPlugin.this.focusIn((Control) event.widget);
- }
- };
- }
-
-
- // ********** focus handling **********
-
- /**
- * This method is called whenever a "focus in" event is generated.
- * If the control gaining focus is part of one of our composites (typically
- * a JPA Details View), we stop listening to Java change events
- * (and assume all changes to the Java model are generated by us).
- * If the control gaining focus is *not* part of one of our composites,
- * we start listening to the Java change events again.
- */
- void focusIn(Control control) {
- while (control != null) {
- if (control.getData(FOCUS_DATA_KEY) == FOCUS_DATA) {
- this.focusIn();
- return;
- }
- control = control.getParent();
- }
- this.focusOut();
- }
-
- /**
- * This method is called whenever a Dali UI control that affects Java
- * source code gains the UI focus. When this happens we deactivate
- * the Dali Java change listener so we ignore any changes to the Java
- * source code that probably originated from Dali. This means we will miss
- * any changes to the Java source code that is caused by non-UI activity;
- * but, we hope, these changes are unrelated to JPA annotations etc.
- * @see #focusOut()
- */
- private void focusIn() {
- JptCorePlugin.setJavaElementChangeListenerIsActive(false);
- }
-
- /**
- * This method is called whenever a non-Dali UI control gains the UI focus.
- * When this happens we activate the Dali Java change listener so that we
- * begin to keep the Dali model synchronized with the Java source code.
- * @see #focusIn()
- */
- private void focusOut() {
- JptCorePlugin.setJavaElementChangeListenerIsActive(true);
- }
-
- /**
- * Tag the specified control so that whenever it (or any of its children,
- * grandchildren, etc.) has the focus, the Dali model ignores any Java
- * change events. This method is to be called when the control is first
- * constructed.
- */
- public void controlAffectsJavaSource(Control control) {
- control.setData(FOCUS_DATA_KEY, FOCUS_DATA);
- }
-
-
- // ********** platform **********
-
- /**
- * Return the JPA platform UI corresponding to the specified JPA platform.
- */
- public JpaPlatformUi getJpaPlatformUi(JpaPlatform jpaPlatform) {
- return JpaPlatformUiRegistry.instance().getJpaPlatformUi(jpaPlatform.getId());
- }
-
- public JpaNavigatorProvider getJpaNavigatorProvider(JpaPlatform jpaPlatform) {
- JpaPlatformUi platform = this.getJpaPlatformUi(jpaPlatform);
- return (platform == null) ? null : platform.getNavigatorProvider();
- }
-
-
- // ********** plug-in implementation **********
-
- /**
- * Register our SWT listener with the display so we receive notification
- * of every "focus in" event.
- */
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
- Display.getDefault().addFilter(SWT.FocusIn, this.focusListener);
- }
-
- /**
- * Unregister our SWT listener with the display.
- */
- @Override
- public void stop(BundleContext context) throws Exception {
- try {
- Display.getDefault().removeFilter(SWT.FocusIn, this.focusListener);
- } finally {
- super.stop(context);
- }
- }
-
-}

Back to the top