Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst')
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/CommonResources.properties113
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/IFileFolderConstants.java96
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/JSFUICommonPlugin.java418
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/actions/IOpenPage.java28
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/actions/LoadCheatSheetAction.java69
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/actions/LoadHelpAction.java68
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/actions/OpenPageAction.java118
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/AbstractClassButtonDialogField.java238
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ClassButtonDialogField.java68
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ColorButtonDialogField.java339
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ColorPalette.java125
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ComboDialogField.java320
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogField.java149
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldBase.java559
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldGroup.java113
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldGroupPage.java76
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldResources.java62
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldResources.properties48
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/IDialogFieldApplyListener.java32
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/IDialogFieldChangeListener.java27
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/IStringButtonAdapter.java24
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ISupportTextValue.java37
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaClassWizard.java186
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaClassWizardPage.java249
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaSearchScope.java221
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaSearchScopeDecorator.java139
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaUIHelper.java140
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/LayoutUtil.java116
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/RadiosDialogField.java233
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ResourceButtonDialogField.java231
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/Separator.java128
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/SourceFolderButtonDialogField.java340
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StatusInfo.java198
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StatusUtil.java114
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StringButtonDialogField.java186
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StringDialogField.java291
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java398
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/TypedElementSelectionValidator.java110
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/TypedViewerFilter.java76
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogs/CommonResourceDialog.java368
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogs/CommonWizardDialog.java44
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogs/ResourceOnClasspathDialog.java254
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogs/TreeViewerSelectionDialog.java393
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/AbstractDetailsForm.java147
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/AbstractMasterDetailBlock.java206
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/AbstractMasterForm.java165
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/AbstractXMLSectionsDetailsForm.java186
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/BlankDetailsForm.java61
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/Alerts.java837
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/BrowserWindow.java391
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/CollapsableSection.java148
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/FavoriteSection.java152
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/ImageContainer.java105
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/IntroductionSection.java351
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/Messages.java35
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/OverviewSection.java287
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/SWTUtils.java1032
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/TextWindow.java63
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/messages.properties3
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/logging/Logger.java215
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/OrderingMessages.java40
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/OrderingMessages.properties12
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/StrategyOrderingPanel.java322
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/FavoriteConfigurations.java257
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/JSFSharedImages.java62
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/JavaModelUtil.java1032
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/PathUtil.java307
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/PixelConverter.java80
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/PluginImageHelper.java213
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/PropertyUtils.java789
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/ResourceUtils.java286
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/StringUtil.java157
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/StyleCombo.java1877
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/UTF8Util.java89
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/WebrootUtil.java268
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/WorkspaceUtil.java283
76 files changed, 0 insertions, 18000 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/CommonResources.properties b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/CommonResources.properties
deleted file mode 100644
index b9527d13f..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/CommonResources.properties
+++ /dev/null
@@ -1,113 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2007 Oracle Corporation 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:
-# Oracle Corporation - initial API and implementation
-###############################################################################
-####################################################
-# Generic Strings for UI
-####################################################
-
-pluginName=Web Application Development Common
-button.save=&Save
-button.remove=&Remove
-
-####################################################
-# Resource message for Logging
-####################################################
-
-log.msg={0}
-
-log.ResourceUtils=Missing Resource Bundle "{0}".
-log.CommonPlugin=Web Application Development Common Plugin initialized on eclipse version {0}.
-log.FavoriteConfigurations.save.error=Failed to save {0} favorites. File={1}
-log.FavoriteConfigurations.read.error=Failed to read {0} favorites. File={1}
-log.CommonPlugin.image.error=Image {0} not found.
-
-log.IntroductionSection.action.error = Failed to launch the link {0}
-
-####################################################
-# Resource message for Alerts
-####################################################
-
-alert.msg={0}
-
-####################################################
-# Resource messages for FavoriteSection
-####################################################
-favorites.group.label=Favorite Configurations
-favorites.label=&Name:
-favorites.tooltip=Construct common setting favorites for this page.
-favorites.save.tooltip=Save the current options on this page as the favorites.
-favorites.remove.tooltip=Remove the current favorite.
-favorites.default=default
-
-####################################################
-# Resource messages for Preference Pages
-####################################################
-JMTPreferencePage.Description=Expand the tree to edit Web Application preferences.
-
-LoggingPreferencePage.Log.Level.label=Log Level:
-LoggingPreferencePage.Log.Level.tooltip=Select the logging level to output to the selected source.
-LoggingPreferencePage.Log.Level.debug=Debug
-LoggingPreferencePage.Log.Level.info=Info
-LoggingPreferencePage.Log.Level.warn=Warn
-LoggingPreferencePage.Log.Level.error=Error
-LoggingPreferencePage.Log.Level.fatal=Fatal
-LoggingPreferencePage.Console.Group.label=Console
-LoggingPreferencePage.Console.Logging.label=Enable &Console Logging
-LoggingPreferencePage.Console.Logging.tooltip=Receive log message in the Eclipse Console view.
-LoggingPreferencePage.Eclipse.Group.label=Eclipse
-LoggingPreferencePage.Eclipse.Logging.label=Enable &Eclipse Logging
-LoggingPreferencePage.Eclipse.Logging.tooltip=Receive log message in the Eclipse Error Log view.
-LoggingPreferencePage.File.Group.label=File
-LoggingPreferencePage.File.Logging.label=Enable &File Logging
-LoggingPreferencePage.File.Logging.tooltip=Write log message to an external file.
-LoggingPreferencePage.File.clearing.label=Clear log file on &startup
-LoggingPreferencePage.File.clearing.tooltip=Each time Eclipse starts, clear the log file.
-LoggingPreferencePage.File.path.label=&Log file:
-LoggingPreferencePage.File.path.tooltip=Where should the log file go? Partial paths are \n based from: /workspace/.metadata/.plugins/org.eclipse.jst.jsf.common.ui.internal/.
-LoggingPreferencePage.File.button.label=B&rowse
-LoggingPreferencePage.File.button.tooltip=Select a location and file name for file logging.
-LoggingPreferencePage.File.select.label=Select a log file
-LoggingPreferencePage.File.Rollover.Frequency.label=Rollover Fre&quency:
-LoggingPreferencePage.File.Rollover.Frequency.tooltip=Select the frequency of how often to generate a new log file. \n The original log file is appended with a timestamp.
-LoggingPreferencePage.File.Rollover.Frequency.daily=Daily
-LoggingPreferencePage.File.Rollover.Frequency.weekly=Weekly
-LoggingPreferencePage.File.Rollover.Frequency.monthly=Monthly
-
-####################################################
-# Resource messages for BrowserWindow
-####################################################
-BrowserWindow.back.tooltip=Navigate back in the browser
-BrowserWindow.forward.tooltip=Navigate forward in the browser
-BrowserWindow.stop.tooltip=Stop browser navigation
-BrowserWindow.refresh.tooltip=Refresh the browser
-BrowserWindow.reload.tooltip=Reload the browser
-
-####################################################
-# Resource messages for Commmon DialogField
-####################################################
-DialogField.JavaClassWizard.NewClass=New Java Class
-DialogField.ClassButton.SelectType=Select Type
-DialogField.Browse=Browse...
-DialogField.ResourceButton.SelectFile=Select File
-
-####################################################
-# Resource messages for Commmon Dialog
-####################################################
-Dialog.ResourceOnClasspathDialog.StatusMessage=Select a properties file
-Dialog.CommonResourceDialog.StatusMessage0=Select
-Dialog.TreeViewerSelectionDialog.DefaultTitle=Select a File
-
-Wizards.NewPage.Error.InvalidProject=Invalid Web project.
-Error.FileFilter.title=File selection
-Error.ImgFileFilter.error=File selection error:
-Error.ProjectFileDialogContentProvider=Project file dialog error: {0}
-Error.RefreshingLocal=Refreshing local
-
-Service.NoResourceError=Unable to determine Service Model file.
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/IFileFolderConstants.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/IFileFolderConstants.java
deleted file mode 100644
index e74e90a91..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/IFileFolderConstants.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui;
-
-/**
- * @author mengbo
- * @version 1.5
- */
-public interface IFileFolderConstants {
-
- /**
- * the dot character
- */
- public static final String DOT = "."; //$NON-NLS-1$
-
- /**
- * the path separator
- */
- public static final String PATH_SEPARATOR = "/"; //$NON-NLS-1$
-
- /** file extensions */
- /**
- * class file extension
- */
- public static final String EXT_CLASS = "class"; //$NON-NLS-1$
-
- /**
- * jar file extension
- */
- public static final String EXT_JAR = "jar"; //$NON-NLS-1$
-
- /**
- * java file extension
- */
- public static final String EXT_JAVA = "java"; //$NON-NLS-1$
-
-
- /**
- * jsp file extension
- */
- public static final String EXT_JSP = "jsp"; //$NON-NLS-1$
-
- /**
- * properties file extension
- */
- public static final String EXT_PROPERTIES = "properties"; //$NON-NLS-1$
-
- /**
- * taglib file extension
- */
- public static final String EXT_TAGLIB = "tld"; //$NON-NLS-1$
-
- /**
- * standard web.xml file name
- */
- public static final String FILE_WEB_XML = "web.xml"; //$NON-NLS-1$
-
- /** folders */
-
- /**
- * classes folder name
- */
- public static final String FOLDER_CLASS = "classes"; //$NON-NLS-1$
-
- /**
- * icons folder name
- */
- public static final String FOLDER_ICONS = "icons"; //$NON-NLS-1$
-
- /**
- * the meta-inf folder name
- */
- public static final String FOLDER_METAINF = "META-INF"; //$NON-NLS-1$
-
- /**
- * the src folder name
- */
- public static final String FOLDER_SOURCE = "src"; //$NON-NLS-1$
-
- /**
- * the web-inf folder name
- */
- public static final String FOLDER_WEBINF = "WEB-INF"; //$NON-NLS-1$
-
- /** the webroot folder depth relative to the project */
- public static final int WEBROOT_FOLDER_DEPTH = 2;
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/JSFUICommonPlugin.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/JSFUICommonPlugin.java
deleted file mode 100644
index b4a1f0075..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/JSFUICommonPlugin.java
+++ /dev/null
@@ -1,418 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.MissingResourceException;
-import java.util.Properties;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jst.jsf.common.ui.internal.guiutils.Alerts;
-import org.eclipse.jst.jsf.common.ui.internal.logging.Logger;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Version;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class JSFUICommonPlugin extends AbstractUIPlugin {
- // Properties contains general properties and defaults to preferences.
- private static final String PROPERTIES = "default.properties"; //$NON-NLS-1$
- // preferences will
- // contain this string
- // in the key.
-
- private static final String P_CONSOLE_LOGGING = "console.logging.on"; //$NON-NLS-1$
-
- private static final String P_CONSOLE_LOG_LEVEL = "console.logging.max.level"; //$NON-NLS-1$
-
- private static final String P_ECLIPSE_LOGGING = "eclipse.logging.on"; //$NON-NLS-1$
-
- private static final String P_ECLIPSE_LOG_LEVEL = "eclipse.logging.max.level"; //$NON-NLS-1$
-
- private static final String P_FILE_LOGGING = "file.logging.on"; //$NON-NLS-1$
-
- private static final String P_FILE_LOG_LEVEL = "file.logging.max.level"; //$NON-NLS-1$
-
- private static final String P_FILE_PATH = "file.logging.path"; //$NON-NLS-1$
-
- private static final String P_FILE_CLEAR = "file.logging.startup.clear"; //$NON-NLS-1$
-
- private static final String P_FILE_ROLLOVER_FREQUENCY = "file.logging.rollover.frequency"; //$NON-NLS-1$
-
- private static final int DEBUG_LEVEL = 0;
-
- private static final int INFO_LEVEL = 1;
-
- private static final int WARN_LEVEL = 2;
-
- private static final int ERROR_LEVEL = 3;
-
- private static final int FATAL_LEVEL = 4;
-
- // What version of the platform are we on.
- private static boolean TWO_DOT_ONE;
-
- private static boolean THREE_DOT;
-
- private static String _version;
-
- // The shared instance.
- private static JSFUICommonPlugin _plugin;
-
- private Logger _log;
-
- private ResourceBundle _resourceBundle;
-
- private Properties _properties;
-
- private URL _pluginBase;
-
- private static Alerts _alerts;
-
- /**
- * The constructor.
- */
- public JSFUICommonPlugin() {
- super();
- _plugin = this;
- versionCheck();
- }
-
- private void versionCheck() {
- String version = (String) ResourcesPlugin.getPlugin().getBundle()
- .getHeaders().get(org.osgi.framework.Constants.BUNDLE_VERSION);
- Version identifier = new Version(version);
-
- TWO_DOT_ONE = ((identifier.getMajor() == 2) && (identifier
- .getMinor() == 1));
- THREE_DOT = (identifier.getMajor() == 3);
- _version = identifier.toString();
- }
-
- /**
- * This method is called upon plug-in activation
- */
- public void start(BundleContext context) throws Exception {
- super.start(context);
-
- // This plugin is for 3.0 only, do a version check.
- if (isThreeDot() == false) {
- throw new CoreException(new Status(IStatus.ERROR, getBundle()
- .getSymbolicName(), IStatus.OK,
- "Requires eclipse version 3.x", null)); //$NON-NLS-1$
- }
-
- try {
- // get resource bundle.
- _resourceBundle = ResourceBundle
- .getBundle("org.eclipse.jst.jsf.common.ui.CommonResources"); //$NON-NLS-1$
- _alerts = new Alerts(this, _resourceBundle);
-
- // get properties.
- _properties = new Properties();
- InputStream input = null;
- _pluginBase = getBundle().getEntry("/"); //$NON-NLS-1$
- try {
- input = (new URL(_pluginBase, PROPERTIES)).openStream();
- _properties.load(input);
- } finally {
- try {
- input.close();
- } catch (IOException ee)// NOPMD
- {
- // nothing to do when IOException throwed in closing files.
- }
- }
-
- // set up logging for this plugin and everthing under it.
- _log = new Logger(this.getBundle(), _resourceBundle);
-
- // NOTE: add in any other plugin code statup HERE!!!!
-
- // log.CommonPlugin=Web Application Development Common Plugin
- // initialized on eclipse version {0}.
-
- // log.info("log.CommonPlugin", version);
-
- } catch (Exception ee) {
- // only log if the logger was configured correctly.
- if (_log != null) {
- _log
- .error(
- "log.msg", //$NON-NLS-1$
- "Problems starting plug-in Web Application Development Common.", //$NON-NLS-1$
- ee);
- }
-
- throw new CoreException(
- new Status(
- IStatus.ERROR,
- getBundle().getSymbolicName(),
- IStatus.OK,
- "Problems starting plug-in Web Application Development Common", //$NON-NLS-1$
- ee));
- }
- }
-
- /**
- * Returns the shared instance.
- * @return the plugin instance
- */
- public static JSFUICommonPlugin getDefault() {
- return _plugin;
- }
-
- /**
- * get the alerts objects associated with this plugin for alerting the user.
- *
- * @return the alerts object
- */
- public static Alerts getAlerts() {
- return _alerts;
- }
-
- /**
- * Returns a logger for the new class using this plugin for reference.
- * @param theClass
- * @return the logger
- */
- // TODO: theClass is never used!!
- public static Logger getLogger(Class theClass) {
- return getDefault().getRootLogger();
- }
-
- /**
- * Returns the plugin's root logger
- * @return the root logger
- */
- public Logger getRootLogger() {
- return _log;
- }
-
- /**
- * Returns this plugin's unique identifier
- *
- * @return this plugin's unique identifier
- *
- */
- public static String getPluginId() {
- return getDefault().getBundle().getSymbolicName();
- }
-
- /**
- * Returns the plugin's resource bundle,
- * @return the resource bundle
- */
- public ResourceBundle getResourceBundle() {
- return _resourceBundle;
- }
-
- /**
- * Returns the string from the plugin's resource bundle, or 'key' if not
- * found.
- * @param key
- * @return the resource string
- */
- public static String getResourceString(String key) {
- ResourceBundle bundle = JSFUICommonPlugin.getDefault().getResourceBundle();
- try {
- return (bundle != null) ? bundle.getString(key) : key;
- } catch (MissingResourceException e) {
- return key;
- }
- }
-
- /**
- * Returns the plugin's descriptor's resource bundle,
- * @return the bundle
- */
- public ResourceBundle getPluginDecriptorBundle() {
- return Platform.getResourceBundle(getDefault().getBundle());
- }
-
- /**
- * Returns the plugin's default properties. These are normally used for
- * default preferences.
- * @return the properties
- */
- public Properties getProperties() {
- return _properties;
- }
-
- /**
- * Returns a shared image for the given name
- * <p>
- * Note: Images returned from this method will be automitically disposed of
- * when this plug-in shuts down. Callers must not dispose of these images
- * themselves.
- * </p>
- *
- * @param name
- * the image name found in /icons (with extension)
- * @return the image, null on error or not found.
- */
- public Image getImage(String name) {
- if (name == null) {
- return null;
- }
-
- ImageRegistry images = getImageRegistry();
- Image image = images.get(name);
- if (image == null) {
- try {
- ImageDescriptor id = ImageDescriptor.createFromURL(new URL(
- _pluginBase, "icons/" + name)); //$NON-NLS-1$
- images.put(name, id);
-
- image = images.get(name);
- } catch (MalformedURLException ee) {
- // log.CommonPlugin.image.error=Image {0} not found.
- _log.error("log.msg", "log.CommonPlugin.image.error", name, ee); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- return image;
- }
-
- /**
- * Returns a shared ImageDescriptor for the given name
- * <p>
- * Note: ImageDescriptor returned from this method will be automitically
- * disposed of when this plug-in shuts down. Callers must not dispose of
- * these ImageDescriptor themselves.
- * </p>
- *
- * @param name
- * the ImageDescriptor name found in /icons (with extension)
- * @return the ImageDescriptor, null on error or not found.
- */
- public ImageDescriptor getImageDescriptor(String name) {
- if (name == null) {
- return null;
- }
-
- ImageRegistry images = getImageRegistry();
- ImageDescriptor id = images.getDescriptor(name);
- if (id == null) {
- try {
- id = ImageDescriptor.createFromURL(new URL(_pluginBase,
- "icons/" + name)); //$NON-NLS-1$
- images.put(name, id);
- } catch (MalformedURLException ee) {
- // log.CommonPlugin.image.error=Image {0} not found.
- _log.error("log.msg", "log.CommonPlugin.image.error", name, ee); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- return id;
- }
-
- /**
- * Is this eclipse version 2.1
- *
- * @return true if version is 2.1
- */
- public static boolean isTwoDotOne() {
- return TWO_DOT_ONE;
- }
-
- /**
- * Is this eclipse version 3.x
- *
- * @return true if version is 3.x
- */
- public static boolean isThreeDot() {
- return THREE_DOT;
- }
-
- /**
- * get the eclipse version
- *
- * @return version string.
- */
- public static String getVersion() {
- return _version;
- }
-
-
-
- /**
- * Initializes the preference controls to the default values. These values
- * are used the first time the preference page is displayed or when the user
- * presses the Defaults button in the preferences page.
- */
- protected void initializeDefaultPreferences(IPreferenceStore store) {
- // NOTE: no logging can happen here since we haven't initialized logging
- // yet because it
- // depends on preferences!!!!
-
- store.setDefault(P_CONSOLE_LOGGING, _properties.getProperty(
- P_CONSOLE_LOGGING, Boolean.TRUE.toString()));
- store.setDefault(P_CONSOLE_LOG_LEVEL, strToIntLogLevel(_properties
- .getProperty(P_CONSOLE_LOG_LEVEL, "ERROR"))); //$NON-NLS-1$
-
- store.setDefault(P_ECLIPSE_LOGGING, _properties.getProperty(
- P_ECLIPSE_LOGGING, Boolean.TRUE.toString()));
- store.setDefault(P_ECLIPSE_LOG_LEVEL, strToIntLogLevel(_properties
- .getProperty(P_ECLIPSE_LOG_LEVEL, "ERROR"))); //$NON-NLS-1$
-
- store.setDefault(P_FILE_LOGGING, _properties.getProperty(
- P_FILE_LOGGING, Boolean.FALSE.toString()));
- store.setDefault(P_FILE_LOG_LEVEL, strToIntLogLevel(_properties
- .getProperty(P_FILE_LOG_LEVEL, "ERROR"))); //$NON-NLS-1$
- store.setDefault(P_FILE_PATH, _properties.getProperty(P_FILE_PATH, "")); //$NON-NLS-1$
- store.setDefault(P_FILE_CLEAR, _properties.getProperty(P_FILE_CLEAR,
- Boolean.TRUE.toString()));
- store.setDefault(P_FILE_ROLLOVER_FREQUENCY, _properties.getProperty(
- P_FILE_ROLLOVER_FREQUENCY, "DAILY")); //$NON-NLS-1$
- }
-
- /**
- * Converts the log level from string to int. The level defaults to
- * ERROR_LEVEL.
- *
- * @param str
- * String representation of log level
- * @return integer representation of log level
- */
- private int strToIntLogLevel(String str) {
- if (str == null) {
- return ERROR_LEVEL;
- }
- if (str.equalsIgnoreCase("DEBUG")) { //$NON-NLS-1$
- return DEBUG_LEVEL;
- }
- if (str.equalsIgnoreCase("INFO")) { //$NON-NLS-1$
- return INFO_LEVEL;
- }
- if (str.equalsIgnoreCase("WARN")) { //$NON-NLS-1$
- return WARN_LEVEL;
- }
- if (str.equalsIgnoreCase("FATAL")) { //$NON-NLS-1$
- return FATAL_LEVEL;
- }
- return ERROR_LEVEL;
- }
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/actions/IOpenPage.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/actions/IOpenPage.java
deleted file mode 100644
index 8456083ed..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/actions/IOpenPage.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.actions;
-
-/**
- * Editors should implement this if they can handle reseting to a page based on
- * the class defined for that page.
- *
- * @author collinsc,jchoi
- */
-public interface IOpenPage {
- /**
- * Sets the currently active page from the id of the page.
- *
- * @param pageID
- */
- public void setActiveEditorPage(String pageID);
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/actions/LoadCheatSheetAction.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/actions/LoadCheatSheetAction.java
deleted file mode 100644
index de7406f7c..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/actions/LoadCheatSheetAction.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.actions;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.cheatsheets.OpenCheatSheetAction;
-
-/**
- * This class is used to open the cheat sheet based on the configuration
- * parameter.
- *
- * @author mengbo
- */
-public class LoadCheatSheetAction extends Action implements
- IExecutableExtension {
- private String _cheatSheetName = null;
-
- /**
- *
- */
- public LoadCheatSheetAction() {
- super();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.action.IAction#run()
- */
- public void run() {
- if (_cheatSheetName != null) {
- OpenCheatSheetAction action = new OpenCheatSheetAction(
- _cheatSheetName);
- action.run();
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement,
- * java.lang.String, java.lang.Object)
- */
- public void setInitializationData(IConfigurationElement config,
- String propertyName, Object data) throws CoreException {
- _cheatSheetName = config.getAttribute("actionparameters"); //$NON-NLS-1$
- }
-
- /**
- * set the cheatSheetName name to open.
- *
- * @param cheatSheetName
- */
- public void setCheatSheetName(String cheatSheetName) {
- _cheatSheetName = cheatSheetName;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/actions/LoadHelpAction.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/actions/LoadHelpAction.java
deleted file mode 100644
index 18b927d2b..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/actions/LoadHelpAction.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.actions;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.help.HelpSystem;
-import org.eclipse.help.IContext;
-import org.eclipse.help.IHelpResource;
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class is used to open the help page for a configuration param.
- *
- * @author mengbo
- */
-public class LoadHelpAction extends Action implements IExecutableExtension {
- private String _helpContextId = null;
-
- /**
- *
- */
- public LoadHelpAction() {
- super();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.action.IAction#run()
- */
- public void run() {
- IContext context = HelpSystem.getContext(_helpContextId);
- if (context != null) {
- IHelpResource[] topics = context.getRelatedTopics();
- if (topics != null && topics.length == 1) {
- PlatformUI.getWorkbench().getHelpSystem().displayHelpResource(
- topics[0].getHref());
- } else {
- PlatformUI.getWorkbench().getHelpSystem().displayHelp(
- _helpContextId);
- }
- }
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement,
- * java.lang.String, java.lang.Object)
- */
- public void setInitializationData(IConfigurationElement config,
- String propertyName, Object data) throws CoreException {
- _helpContextId = config.getAttribute("actionparameters"); //$NON-NLS-1$
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/actions/OpenPageAction.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/actions/OpenPageAction.java
deleted file mode 100644
index 252e44caf..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/actions/OpenPageAction.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.actions;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.editor.FormEditor;
-
-/**
- * This class is used to open a page in the editor based on the configuration
- * parameter.
- *
- * @author collinsc,jchoi
- */
-public class OpenPageAction extends Action implements IExecutableExtension {
- private String pageID = null;
-
- private ISelection selection;
-
- /**
- *
- */
- public OpenPageAction() {
- super();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.action.IAction#run()
- */
- public void run() {
- if (pageID != null) {
- // get the active editor
- IEditorPart editor = getActiveEditor();
- IOpenPage openPage = (IOpenPage)editor.getAdapter(IOpenPage.class);
- if(openPage != null){
- openPage.setActiveEditorPage(pageID);
- if (selection != null && editor instanceof FormEditor) {
- IEditorPart activePage = ((FormEditor) editor)
- .getActiveEditor();
- if (activePage instanceof ISelectionProvider) {
- ((ISelectionProvider) activePage)
- .setSelection(selection);
- }
- }
- }
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement,
- * java.lang.String, java.lang.Object)
- */
- public void setInitializationData(IConfigurationElement config,
- String propertyName, Object data) throws CoreException {
- pageID = config.getAttribute("actionparameters"); //$NON-NLS-1$
- }
-
- /**
- * set the class name to open.
- * @param className
- */
- public void setPageName(String className) {
- this.pageID = className;
- }
-
- /**
- * get the current active editor
- *
- * @return the active editor part
- */
- public static IEditorPart getActiveEditor() {
- IEditorPart editor = null;
- IWorkbenchWindow win = PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow();
- if (win != null) {
- IWorkbenchPage page = win.getActivePage();
- if (page != null) {
- editor = page.getActiveEditor();
- }
- }
- return editor;
- }
-
- /**
- * @return stored selection
- */
- public ISelection getSelection() {
- return selection;
- }
-
- /**
- * @param selection
- */
- public void setSelection(ISelection selection) {
- this.selection = selection;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/AbstractClassButtonDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/AbstractClassButtonDialogField.java
deleted file mode 100644
index 165846a6b..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/AbstractClassButtonDialogField.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.search.IJavaSearchScope;
-import org.eclipse.jdt.ui.IJavaElementSearchConstants;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.jst.jsf.common.ui.internal.guiutils.Alerts;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-
-/**
- * @author mengbo
- * @version 1.5
- */
-/*package*/ abstract class AbstractClassButtonDialogField extends
- StringButtonDialogField {
- private IProject _project;
-
- private String _superClass;
-
- private List _interfacesList;
-
- private IType _type;
-
- private int _typeFlag = IJavaElementSearchConstants.CONSIDER_ALL_TYPES;
-
- private boolean _autoOpenResource = true;
-
- /**
- * @param autoOpenResource
- */
- public void setAutoOpenResource(boolean autoOpenResource) {
- _autoOpenResource = autoOpenResource;
- }
-
- /**
- * @param project
- */
- public AbstractClassButtonDialogField(IProject project) {
- super(null);
- this._project = project;
-
- setHyperLink(new HyperlinkAdapter() {
- public void linkActivated(HyperlinkEvent e) {
- activeLink();
- }
- });
-
- setStringButtonAdapter(new IStringButtonAdapter() {
- public void changeControlPressed(DialogField field) {
- browseButtonPressed();
- }
- });
- }
-
- private void activeLink() {
- String className = getText();
- className = trimNonAlphaChars(className);
- if (className.length() > 0
- && JavaUIHelper.doesClassExist(_project, className)) {
- JavaUIHelper.doOpenClass(_project, className);
- } else {
- try {
- if (_project == null || !_project.hasNature(JavaCore.NATURE_ID)) {
- ResourceBundle rb = ResourceBundle
- .getBundle("org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogFieldResources"); //$NON-NLS-1$
- Alerts alerts = new Alerts(JSFUICommonPlugin.getDefault(), rb);
- alerts.error("ClassButtonDialogField.Alert.Title", //$NON-NLS-1$
- "ClassButtonDialogField.Alert.Msg"); //$NON-NLS-1$
- return;
- }
- } catch (CoreException e) {
- e.printStackTrace();
- return;
- }
- JavaClassWizard wizard = new JavaClassWizard(_project, className,
- _superClass, getImplementInterfaces());
- wizard.setAutoOpenResource(_autoOpenResource);
- WizardDialog dialog = new WizardDialog(getShell(), wizard);
- dialog.create();
-
- setDialogSize(dialog, 400, 500);
- if (dialog.open() == WizardDialog.OK) {
- String newValue = wizard.getClassNameWithArgs();
- if (!newValue.equals(className)) {
- setText(newValue);
- }
- }
- }
- }
-
- /**
- * @return the interfaces
- * TODO: the contract seems inconsistent
- * as whether to return null or empty list when none
- */
- protected abstract List getImplementInterfaces();
-
- /**
- * @return the java search scope to be used. Must not be null
- */
- protected abstract IJavaSearchScope getJavaSearchScope();
-
- private void browseButtonPressed() {
- Shell shell = getShell();
- SelectionDialog dialog = JavaUIHelper.openSelectionDialog(shell,
- getJavaSearchScope(), _typeFlag);
- dialog.setTitle(JSFUICommonPlugin
- .getResourceString("DialogField.ClassButton.SelectType"));//$NON-NLS-1$
-
- if (dialog.open() == SelectionDialog.OK) {
- String oldClassName = getText();
- if (dialog.getResult() != null) {
- _type = (IType) dialog.getResult()[0];
- String newClassName = _type.getFullyQualifiedName();
- if (!oldClassName.equals(newClassName)) {
- setText(newClassName);
- }
- }
- }
- }
-
- private void setDialogSize(Dialog dialog, int width, int height) {
- Point computedSize = dialog.getShell().computeSize(SWT.DEFAULT,
- SWT.DEFAULT);
- width = Math.max(computedSize.x, width);
- height = Math.max(computedSize.y, height);
- dialog.getShell().setSize(width, height);
- }
-
- private String trimNonAlphaChars(String className) {
- className = className.trim();
- while (className.length() > 0
- && !Character.isLetter(className.charAt(0))) {
- className = className.substring(1, className.length());
- }
- int loc = className.indexOf(":"); //$NON-NLS-1$
- if (loc != -1 && loc > 0) {
- className = className.substring(0, loc);
- } else if (loc == 0) {
- className = ""; //$NON-NLS-1$
- }
- return className;
- }
-
- /**
- * @return Returns the project.
- */
- public IProject getProject() {
- return _project;
- }
-
- /**
- * @param project
- * The project to set.
- */
- public void setProject(IProject project) {
- this._project = project;
- }
-
- /**
- * @return Returns the superClassName.
- */
- public String getSuperClassName() {
- return _superClass;
- }
-
- /**
- * @param superClassName
- * The superClassName to set.
- */
- public void setSuperClassName(String superClassName) {
- this._superClass = superClassName;
- }
-
- /**
- * @return Returns the interfacesList.
- */
- protected List getInterfacesList() {
- return _interfacesList;
- }
-
- /**
- * Sets (replaces) the interface list
- * TODO: this list can have at most one element
- * @param interfaceName
- */
- public void setInterface(String interfaceName) {
- _interfacesList = new ArrayList();
- _interfacesList.add(interfaceName);
- }
-
- /**
- * @return Returns the _type.
- */
- public IType getType() {
- return _type;
- }
-
- /**
- * @return Returns the typeFalg.
- */
- public int getTypeFlag() {
- return _typeFlag;
- }
-
- /**
- * @param typeFalg
- * The typeFalg to set.
- */
- public void setTypeFlag(int typeFalg) {
- this._typeFlag = typeFalg;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ClassButtonDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ClassButtonDialogField.java
deleted file mode 100644
index baed42bb5..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ClassButtonDialogField.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.search.IJavaSearchScope;
-import org.eclipse.jdt.core.search.SearchEngine;
-
-/**
- * @author mengbo
- */
-public class ClassButtonDialogField extends AbstractClassButtonDialogField {
- /**
- * @param project
- */
- public ClassButtonDialogField(IProject project) {
- super(project);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.jsf.common.ui.internal.dialogfield.AbstractClassButtonDialogField#getImplementInterfaces()
- */
- protected List getImplementInterfaces() {
- return getInterfacesList();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.jsf.common.ui.internal.dialogfield.AbstractClassButtonDialogField#getJavaSearchScope()
- */
- protected IJavaSearchScope getJavaSearchScope() {
- IJavaSearchScope scope;
- String superType = getSuperClassName();
- List interfaceList = getInterfacesList();
- if (superType == null && interfaceList != null
- && interfaceList.size() > 0) {
- superType = interfaceList.get(0).toString();
- }
- if (getSuperClassName() != null && interfaceList != null
- && interfaceList.size() > 0) {
- superType = null;
- }
- if (superType == null) {
- scope = SearchEngine
- .createJavaSearchScope(new IJavaProject[] { JavaCore
- .create(getProject()) });
- } else {
- scope = JavaUIHelper.findSearchScope(getProject(), superType);
- }
- return scope;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ColorButtonDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ColorButtonDialogField.java
deleted file mode 100644
index 822841455..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ColorButtonDialogField.java
+++ /dev/null
@@ -1,339 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jst.jsf.common.ui.internal.utils.StyleCombo;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.ColorDialog;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * This class provides a common color choice DialogFiled.
- *
- * @author mengbo
- */
-public class ColorButtonDialogField extends StyleComboDialogField {
- // color selection button
- private Button _button;
-
- // the button enable flag
- private boolean _buttonEnabled;
-
- // the current color
- private Color _color;
-
- // the current color RGB
- private RGB _colorValue;
-
- // the combo control
- private StyleCombo _combo;
-
- // when no color is set or selected, using the empty image
- private Image _emptyImage;
-
- // size of color image
- private Point _extent;
-
- // the color image
- private Image _image;
-
- private ColorPalette _colorPalette;
-
- /**
- * @param flags
- * @param colorPalette
- */
- public ColorButtonDialogField(int flags, ColorPalette colorPalette) {
- super(flags);
- _buttonEnabled = true;
- _colorPalette = colorPalette;
- }
-
- private void buttonPressed() {
- ColorDialog colorDialog = new ColorDialog(_button.getShell());
- colorDialog.setRGB(_colorValue);
- RGB newColor = colorDialog.open();
- if (newColor != null && !newColor.equals(_colorValue)) {
- _colorValue = newColor;
- setText(ColorPalette.getStringColor(newColor));
- updateColorImage();
- }
- }
-
- /**
- * Compute the size of the image to be displayed.
- *
- * @param window -
- * the window used to calculate
- * @return <code>Point</code>
- */
- private Point computeImageSize(Control window) {
- GC gc = new GC(window);
- Font f = _button.getFont();
- gc.setFont(f);
- int height = gc.getFontMetrics().getHeight();
-
- Point p = new Point(height * 3 - 6, height - 2);
- gc.dispose();
- return p;
- }
-
- private void disposeResources() {
- if (_image != null) {
- _image.dispose();
- _image = null;
- }
- if (_emptyImage != null) {
- _emptyImage.dispose();
- _emptyImage = null;
- }
- if (_color != null) {
- _color.dispose();
- _color = null;
- }
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField#doFillIntoGrid(org.eclipse.ui.forms.widgets.FormToolkit,
- * org.eclipse.swt.widgets.Composite, int)
- */
- public Control[] doFillIntoGrid(FormToolkit toolkit, Composite parent,
- int nColumns) {
- assertEnoughColumns(nColumns);
-
- Control requiredLabel = getRequiredLabelControl(toolkit, parent);
- requiredLabel.setLayoutData(gridDataForLabel(1));
-
- Control label = getLabelControl(toolkit, parent);
- label.setLayoutData(gridDataForLabel(1));
-
- StyleCombo combo = getComboControl(toolkit, parent);
- combo.setLayoutData(gridDataForCombo(nColumns - 3));
-
- _button = getChangeControl(toolkit, parent);
- _button.setLayoutData(gridDataForButton(1));
-
- return new Control[] { requiredLabel, label, combo, _button };
- }
-
- /**
- * Sets the enable state of the button.
- * @param enable
- */
- public void enableButton(boolean enable) {
- if (isOkToUse(_button)) {
- _button.setEnabled(isEnabled() && enable);
- }
- _buttonEnabled = enable;
- }
-
- /**
- * Creates or returns the created buttom widget.
- * @param toolkit
- *
- * @param parent
- * The parent composite or <code>null</code> if the widget has
- * already been created.
- * @return the button widget
- */
- public Button getChangeControl(FormToolkit toolkit, Composite parent) {
- if (_button == null) {
- assertCompositeNotNull(parent);
- if (toolkit != null) {
- _button = toolkit.createButton(parent, "", SWT.PUSH); //$NON-NLS-1$
- } else {
- _button = new Button(parent, SWT.PUSH);
- }
- _button.setEnabled(isEnabled() && _buttonEnabled);
-
- _button.addSelectionListener(new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent e) {
- buttonPressed();
- }
-
- public void widgetSelected(SelectionEvent e) {
- buttonPressed();
- }
- });
-
- _button.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent event) {
- disposeResources();
- }
- });
-
- _extent = computeImageSize(parent);
- _image = new Image(parent.getDisplay(), _extent.x, _extent.y);
- _emptyImage = new Image(parent.getDisplay(), _extent.x, _extent.y);
- initEmptyImage(_button);
- updateColorImage();
- }
-
- return _button;
- }
-
- private String[] getColorList() {
- Map map = _colorPalette.getExtendedColorMap();
- List list = new ArrayList(map.keySet());
- Collections.sort(list);
- return (String[]) list.toArray(new String[list.size()]);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.jsf.common.ui.internal.dialogfield.StringDialogField#getTextControl(org.eclipse.ui.forms.widgets.FormToolkit,
- * org.eclipse.swt.widgets.Composite)
- */
- public StyleCombo getComboControl(FormToolkit toolkit, Composite parent) {
-
- if (_combo == null) {
- _combo = super.getComboControl(toolkit, parent);
-
- _combo.addSelectionListener(new SelectionListener() {
-
- public void widgetDefaultSelected(SelectionEvent e) {
- updateImageAfterChanged();
- }
-
- public void widgetSelected(SelectionEvent e) {
- updateImageAfterChanged();
- }
- });
- _combo.addFocusListener(new FocusAdapter() {
- public void focusLost(FocusEvent e) {
- updateImageAfterChanged();
- }
- });
- _combo.setItems(getColorList());
- }
- return _combo;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField#getNumberOfControls()
- */
- public int getNumberOfControls() {
- return 4;
- }
- private GridData gridDataForButton(int span) {
- GridData gd = new GridData();
- gd.horizontalAlignment = GridData.FILL;
- gd.grabExcessHorizontalSpace = false;
- gd.horizontalSpan = span;
- gd.widthHint = LayoutUtil.getButtonWidthHint(_button);
- gd.heightHint = _combo.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
- return gd;
- }
-
- private void initEmptyImage(Control parent) {
- Color transparentColor = parent.getForeground();
- ImageData imageData = _emptyImage.getImageData();
- imageData.transparentPixel = 0;
- GC gc = new GC(_emptyImage);
- gc.setBackground(transparentColor);
- gc.fillRectangle(0, 0, _emptyImage.getBounds().width, _emptyImage
- .getBounds().height);
- }
-
- /**
- * Set the current color value and update the control.
- *
- * @param rgb
- * The new color.
- */
- public void setColorValue(RGB rgb) {
- _colorValue = rgb;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.jsf.common.ui.internal.dialogfield.ComboDialogField#setTextWithoutUpdate(java.lang.String)
- */
- public void setTextWithoutUpdate(String text) {
- super.setTextWithoutUpdate(text);
- updateImageAfterChanged();
- }
-
- /**
- * Update the image being displayed on the button using the current color
- * setting.
- */
- protected void updateColorImage() {
- if (_button.isDisposed()) {
- return;
- }
-
- if (_colorValue == null) {
- _button.setImage(_emptyImage);
- return;
- }
-
- Display display = _button.getDisplay();
- GC gc = new GC(_image);
- gc.setForeground(display.getSystemColor(SWT.COLOR_BLACK));
- gc.drawRectangle(0, 0, _extent.x - 1, _extent.y - 1);
- if (_color != null) {
- _color.dispose();
- }
- _color = new Color(display, _colorValue);
- gc.setBackground(_color);
- gc.fillRectangle(1, 1, _extent.x - 2, _extent.y - 2);
- gc.dispose();
- _button.setImage(_image);
- }
-
- /*
- * @see DialogField#updateEnableState
- */
- protected void updateEnableState() {
- super.updateEnableState();
- if (isOkToUse(_button)) {
- _button.setEnabled(isEnabled() && _buttonEnabled);
- }
- }
-
- private void updateImageAfterChanged() {
- String newColor = getText().trim();
- setColorValue(_colorPalette.getExtendedColorRGB(newColor));
- updateColorImage();
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ColorPalette.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ColorPalette.java
deleted file mode 100644
index 454a4c0a5..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ColorPalette.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 Oracle Corporation 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:
- * Oracle Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-
-/**
- * Defines a two sets: one of basic and one of extended colors. Clients extending
- * this class must provide the two maps
- *
- * @author cbateman
- *
- */
-public abstract class ColorPalette
-{
- /**
- * @param cssText
- * @return the basic color matching the cssText key or null if color doesn't exist
- */
- public final Color getBasicColor(String cssText) {
- return (Color) getBasicColorMap().get(cssText.toLowerCase());
- }
-
- /**
- * @param cssText
- * @return the extended color matching the cssText key or null if color doesn't exist
- */
- public final Color getExtendedColor(String cssText) {
- Set keys = getExtendedColorMap().keySet();
- for (Iterator iterator = keys.iterator(); iterator.hasNext();) {
- String key = (String) iterator.next();
- if (key.equalsIgnoreCase(cssText)) {
- return (Color) getExtendedColorMap().get(key);
- }
- }
- return null;
- }
-
- /**
- * @return the map of basic colors where the key is the color name (a string)
- * and the value is an RGB object
- */
- public abstract Map getBasicColorMap();
-
- /**
- * @return the map of extended colors where the key is the color name (a string)
- * and the value is an Color object
- */
- public abstract Map getExtendedColorMap();
-
- /**
- * @param textColor
- * @return same as getExtendedColor but returns value as an RGB object
- */
- public final RGB getExtendedColorRGB(String textColor) {
- if (textColor == null || textColor.length() == 0) {
- return null;
- }
-
- Color color = getExtendedColor(textColor);
- if (color != null) {
- return color.getRGB();
- }
-
- if (textColor.charAt(0) == '#' && textColor.length() == 4) {
- char[] rgbChars = textColor.toCharArray();
- char[] fullChars = { rgbChars[0], rgbChars[1], rgbChars[1],
- rgbChars[2], rgbChars[2], rgbChars[3], rgbChars[3] };
-
- textColor = String.valueOf(fullChars);
- }
-
- if (textColor.charAt(0) == '#' && textColor.length() == 7) {
- try {
- int intColor = Integer.decode(textColor).intValue();
-
- if (intColor > 0xFFFFFF || intColor < 0) {
- return null;
- }
- int r = intColor >> 16;
- int g = (intColor >> 8) & 0xFF;
- int b = intColor & 0xFF;
- return new RGB(r, g, b);
-
- } catch (NumberFormatException e) {
- return null;
- }
- }
- return null;
- }
-
- /**
- * @param rgb
- * @return the hex string for equivalent of the rgb color
- */
- public static String getStringColor(RGB rgb) {
- if (rgb == null) {
- return ""; //$NON-NLS-1$
- }
-
- StringBuffer buffer = new StringBuffer("#"); //$NON-NLS-1$
- int[] intRGBs = new int[] { rgb.red, rgb.green, rgb.blue };
- for (int i = 0; i < 3; i++) {
- if (intRGBs[i] < 16) {
- buffer.append("0"); //$NON-NLS-1$
- }
- buffer.append(Integer.toHexString(intRGBs[i]).toUpperCase());
- }
- return buffer.toString();
- }
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ComboDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ComboDialogField.java
deleted file mode 100644
index 582634e13..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ComboDialogField.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * Dialog field containing a label and a combo control.
- *
- * If the combo control is editable, then when user type in the field, will only
- * fire dialogFieldChanged, without dialogFieldApplied just as text control. But
- * when user change selection using the drop down, will fire both
- * dialogFieldChanged and dialogFieldApplied
- *
- * @author mengbo
- */
-public class ComboDialogField extends DialogFieldBase implements
- ISupportTextValue {
- final static private int WIDTH_HINT = 10;
-
- private String _text;
-
- private int _selectionIndex;
-
- private String[] _items;
-
- private CCombo _comboControl;
-
- private ModifyListener _modifyListener;
-
- private int _flags;
-
- private boolean _pending = false;
-
- private Map _entryMap;
-
- /**
- * @param flags
- */
- public ComboDialogField(int flags) {
- super();
- _text = ""; //$NON-NLS-1$
- _items = new String[0];
- _flags = flags;
- _selectionIndex = -1;
- }
-
- // ------- layout helpers
-
- /*
- * @see DialogField#doFillIntoGrid
- */
- public Control[] doFillIntoGrid(FormToolkit toolkit, Composite parent,
- int nColumns) {
- assertEnoughColumns(nColumns);
-
- Control requiredLabel = getRequiredLabelControl(toolkit, parent);
- requiredLabel.setLayoutData(gridDataForLabel(1));
-
- Control label = getLabelControl(toolkit, parent);
- label.setLayoutData(gridDataForLabel(1));
-
- CCombo combo = getComboControl(toolkit, parent);
- combo.setLayoutData(gridDataForCombo(nColumns - 2));
-
- return new Control[] { requiredLabel, label, combo };
- }
-
- /*
- * @see DialogField#getNumberOfControls
- */
- public int getNumberOfControls() {
- return 3;
- }
-
- private static GridData gridDataForCombo(int span) {
- GridData gd = new GridData();
- gd.horizontalAlignment = GridData.FILL;
- gd.grabExcessHorizontalSpace = false;
- gd.horizontalSpan = span;
- gd.widthHint = WIDTH_HINT;
- return gd;
- }
-
- // ------- focus methods
-
- /*
- * @see DialogField#setFocus
- */
- public boolean setFocus() {
- if (isOkToUse(_comboControl)) {
- _comboControl.setFocus();
- }
- return true;
- }
-
- // ------- ui creation
-
- /**
- * Creates or returns the created combo control.
- * @param toolkit
- *
- * @param parent
- * The parent composite or <code>null</code> when the widget
- * has already been created.
- * @return the custom combo control
- */
- public CCombo getComboControl(FormToolkit toolkit, Composite parent) {
- if (_comboControl == null || _comboControl.isDisposed()) {
- assertCompositeNotNull(parent);
- _modifyListener = new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- doModifyText(e);
- }
- };
- SelectionListener selectionListener = new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- doSelectionChanged(e);
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- handleDefaultSelection(e);
- }
- };
-
- if (toolkit != null) {
- _comboControl = new CCombo(parent, _flags);
- toolkit.adapt(_comboControl);
- } else {
- _comboControl = new CCombo(parent, _flags | SWT.BORDER);
- _comboControl.setBackground(Display.getCurrent()
- .getSystemColor(SWT.COLOR_LIST_BACKGROUND));
- }
-
- // moved up due to 1GEUNW2
- _comboControl.setItems(_items);
- if (_selectionIndex != -1) {
- _comboControl.select(_selectionIndex);
- } else {
- _comboControl.setText(_text);
- }
- _comboControl.setFont(parent.getFont());
- _comboControl.addModifyListener(_modifyListener);
- _comboControl.addSelectionListener(selectionListener);
- _comboControl.addFocusListener(new FocusAdapter() {
- public void focusLost(FocusEvent e) {
- doFocusLost(e);
- }
- });
- _comboControl.setEnabled(isEnabled());
- _comboControl.setToolTipText(getToolTip());
- }
- return _comboControl;
- }
-
- private void handleDefaultSelection(SelectionEvent e) {
- // commit value
- if (_pending) {
- _pending = false;
- dialogFieldApplied();
- }
- }
-
- private void doFocusLost(FocusEvent e) {
- if (_pending) {
- _pending = false;
- dialogFieldApplied();
- }
- }
-
- private void doModifyText(ModifyEvent e) {
- if (isOkToUse(_comboControl)) {
- _text = getEntryKey(_comboControl.getText());
- _selectionIndex = _comboControl.getSelectionIndex();
- }
- _pending = true;
- dialogFieldChanged();
- }
-
- private void doSelectionChanged(SelectionEvent e) {
- if (isOkToUse(_comboControl)) {
- _items = _comboControl.getItems();
- _text = getEntryKey(_comboControl.getText());
- _selectionIndex = _comboControl.getSelectionIndex();
- }
- _pending = false;
- dialogFieldChangedAndApplied();
- }
-
- // ------ enable / disable management
-
- /*
- * @see DialogField#updateEnableState
- */
- protected void updateEnableState() {
- super.updateEnableState();
- if (isOkToUse(_comboControl)) {
- _comboControl.setEnabled(isEnabled());
- }
- }
-
- // ------ text access
-
-
- /**
- * Sets the combo items. Triggers a dialog-changed event.
- * @param items
- */
- public void setItems(String[] items) {
- _items = items;
- if (isOkToUse(_comboControl)) {
- _comboControl.setItems(items);
- }
- _pending = false;
- // dialogFieldChangedAndApplied();
- }
-
- /**
- * Gets the text.
- */
- public String getText() {
- return _text;
- }
-
- /**
- * Sets the text. Triggers a dialog-changed event.
- */
- public void setText(String text) {
- setTextWithoutUpdate(text);
- _pending = false;
- dialogFieldChangedAndApplied();
- }
-
- /**
- * Selects an item.
- * @param index
- */
- public void selectItem(int index) {
- if (isOkToUse(_comboControl)) {
- _comboControl.select(index);
- } else {
- if (index >= 0 && index < _items.length) {
- _text = getEntryKey(_items[index]);
- _selectionIndex = index;
- }
- }
- dialogFieldChangedAndApplied();
- }
-
- /**
- * Sets the text without triggering a dialog-changed event.
- */
- public void setTextWithoutUpdate(String text) {
- _pending = false;
- if (text == null) {
- text = "";//$NON-NLS-1$
- }
- _text = text;
- if (isOkToUse(_comboControl)) {
- _comboControl.removeModifyListener(_modifyListener);
- _comboControl.setText(getEntryValue(text));
- _comboControl.addModifyListener(_modifyListener);
- }
- }
-
- private String getEntryValue(String key) {
- if (_entryMap == null || !_entryMap.containsKey(key)) {
- return key;
- }
- return _entryMap.get(key).toString();
- }
-
- private String getEntryKey(String value) {
- if (_entryMap == null || !_entryMap.containsValue(value)) {
- return value;
- }
-
- Entry[] entries = (Entry[]) _entryMap.entrySet().toArray(new Entry[0]);
- for (int i = 0; i < entries.length; i++) {
- if (entries[i].getValue() == value
- || (value != null && value.equals(entries[i].getValue()))) {
- return entries[i].getKey().toString();
- }
- }
- return value;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField#handleGrabHorizontal()
- */
- public void handleGrabHorizontal() {
- LayoutUtil.setGrabHorizontal(_comboControl, true);
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogField.java
deleted file mode 100644
index 0ff86f78c..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogField.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * @author mengbo
- * @version 1.5
- */
-public interface DialogField {
- /**
- * this method must be called directly after constructor, in this case,
- * system will create a hyper link label, and when the hyper link is
- * clicked, the corresponding method on the listener will be called. A
- * RuntimeException will throw out if this method is called after the label
- * has been created.
- *
- * @param listener
- * can't be null
- */
- public abstract void setHyperLink(IHyperlinkListener listener);
-
- /**
- * Sets the label of the dialog field.
- * @param labeltext
- */
- public abstract void setLabelText(String labeltext);
-
- // ------ change listener
- /**
- * Listener that is notified on a field change
- * @param listener
- */
- public abstract void setDialogFieldChangeListener(
- IDialogFieldChangeListener listener);
-
- /**
- * Listener that is notified on a field apply
- * @param listener
- */
- public abstract void setDialogFieldApplyListener(
- IDialogFieldApplyListener listener);
-
- // ------- focus management
- /**
- * Tries to set the focus to the dialog field. Returns <code>true</code>
- * if the dialog field can take focus. To be re-implemented by dialog field
- * implementors.
- * @return true if dialog field can take focus
- */
- public abstract boolean setFocus();
-
- /**
- * Creates all controls of the dialog field and fills it to a composite. The
- * composite is assumed to have <code>MGridLayout</code> as layout. The
- * dialog field will adjust its controls' spans to the number of columns
- * given. To be reimplemented by dialog field implementors.
- * @param toolkit
- * @param parent
- * @param nColumns
- * @return the controls
- */
- public abstract Control[] doFillIntoGrid(FormToolkit toolkit,
- Composite parent, int nColumns);
-
- /**
- * Returns the number of columns of the dialog field. To be reimplemented by
- * dialog field implementors.
- * @return the number of columns
- */
- public abstract int getNumberOfControls();
-
- // ------- ui creation
- /**
- * @param _formToolkit
- * @param parent
- * @return the label control
- */
- public abstract Control getLabelControl(FormToolkit _formToolkit,
- Composite parent);
-
- // --------- enable / disable management
- /**
- * @param enabled
- */
- public abstract void setEnabled(boolean enabled);
-
- /**
- * Gets the enable state of the dialog field.
- * @return true if enabled is set
- */
- public abstract boolean isEnabled();
-
- /**
- * Get attached data by key.
- *
- * @param key
- * @return the attached data object for key
- */
- public abstract Object getAttachedData(Object key);
-
- /**
- * You can attach any data to the DialogField, and get it using the
- * <code>getAttachedData</code> method.
- *
- * @param key
- * @param value
- */
- public abstract void putAttachedData(Object key, Object value);
-
- /**
- * this method give the DialogField a chance to set the correct column to
- * grab horizontal space. In the implementation of this method, should only
- * change the GridData of control, should not do anything else.
- *
- * The caller is responsible to make sure the controls for the dialog field
- * has been created before calling this method.
- */
- public abstract void handleGrabHorizontal();
-
- /**
- * @return true if is required field
- */
- public abstract boolean isRequired();
-
- /**
- * @param toolTip
- */
- public abstract void setToolTip(String toolTip);
-
- /**
- * @return the field's enclosing shell or null if none
- */
- public Shell getShell();
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldBase.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldBase.java
deleted file mode 100644
index 7d61f4983..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldBase.java
+++ /dev/null
@@ -1,559 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseTrackAdapter;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-
-/**
- * Base class of all Dialog fields. Dialog fields manage controls together with
- * the model, independed from the creation time of the widgets. - support for
- * automated layouting. - enable / disable, set focus a concept of the base
- * class. DialogField have a label.
- *
- * DialogField may be used in two different context:
- * <ol>
- * <li> In side dialog. In this case, whenever there is anything change in the
- * dialog field, such as user type anything, the dialog should listen to the
- * dialogFieldChanged() events and do things like validation. When user press
- * the "OK" button, dialog should call getXXX to get the value from the dialog
- * field and apply them.
- * <li> In side form based editor or properties view. In this case, whenever
- * there is anything change in the dialog field, such as user type anything, the
- * editor/view should listen to the dialogFieldChanged() events and do things
- * like validation. When user press "Enter" or move the focus out of the control
- * (finish editing), the dialog field will fire out dialogFieldApplied() events,
- * and the editor/view should listen to this event and apply the value to the
- * underlying model.
- * </ol>
- *
- * The basic idea of the DialogField framework is comming from
- * <code>org.eclipse.jface.preference.FieldEditor</code> and
- * <code>org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField</code>
- *
- * @author mengbo
- */
-public class DialogFieldBase implements DialogField {
- private Label _label;
-
- private Label _requiredLabel;
-
- private String _labelText;
-
- private IDialogFieldChangeListener _dialogFieldChangeListener;
-
- private IDialogFieldApplyListener _dialogFieldApplyListener;
-
- private boolean _enabled;
-
- private FontMetrics _fontMetrics;
-
- private IHyperlinkListener _listener;
-
- private Hyperlink _hyperlink;
-
- private Map _attachedData;
-
- private boolean _isRequired;
-
- private String toolTip;
-
- /**
- * default constructor
- */
- public DialogFieldBase() {
- _enabled = true;
- _label = null;
- _requiredLabel = null;
- _hyperlink = null;
- _labelText = ""; //$NON-NLS-1$
- }
-
- /**
- * this method must be called directly after constructor, in this case,
- * system will create a hyper link label, and when the hyper link is
- * clicked, the corresponding method on the listene will be called. A
- * RuntimeException will throw out if this method is called after the label
- * has been created.
- *
- * @param listener
- * can't be null
- */
- public void setHyperLink(IHyperlinkListener listener) {
- if (_label != null) {
- throw new RuntimeException(
- "The Label instance does not support the listener"); //$NON-NLS-1$
- }
- this._listener = listener;
- }
-
- /**
- * Sets the label of the dialog field.
- */
- public void setLabelText(String labeltext) {
- _labelText = labeltext == null ? "" : labeltext; //$NON-NLS-1$
- // if (_isRequired)
- // {
- // _labelText = "* " + _labelText;
- // }
- // else
- // {
- // _labelText = " " + _labelText;
- // }
- if (_label != null && !_label.isDisposed()) {
- _label.setText(_labelText);
- } else if (_hyperlink != null && !_hyperlink.isDisposed()) {
- _hyperlink.setText(_labelText);
- }
- }
-
- /**
- * @return return the enclosing Shell or null if one cannot be determined
- */
- public Shell getShell() {
- if (_label != null && !_label.isDisposed()) {
- return _label.getShell();
- } else if (_hyperlink != null && !_hyperlink.isDisposed()) {
- return _hyperlink.getShell();
- }
- return null;
- }
-
- // ------ change listener
-
- /**
- * Defines the listener for this dialog field.
- */
- public final void setDialogFieldChangeListener(
- IDialogFieldChangeListener listener) {
- _dialogFieldChangeListener = listener;
- }
-
- public final void setDialogFieldApplyListener(
- IDialogFieldApplyListener listener) {
- _dialogFieldApplyListener = listener;
- }
-
- /**
- * fire both dialogFieldChanged and dialogFieldApplied events.
- */
- public void dialogFieldChangedAndApplied() {
- if (_dialogFieldChangeListener != null) {
- _dialogFieldChangeListener.dialogFieldChanged(this);
- }
- if (_dialogFieldApplyListener != null) {
- _dialogFieldApplyListener.dialogFieldApplied(this);
- }
- }
-
- /**
- * fire dialogFieldChanged event.
- *
- */
- public void dialogFieldChanged() {
- if (_dialogFieldChangeListener != null) {
- _dialogFieldChangeListener.dialogFieldChanged(this);
- }
- }
-
- /**
- * fire dialogFieldApplied event.
- *
- */
- public void dialogFieldApplied() {
- if (_dialogFieldApplyListener != null) {
- _dialogFieldApplyListener.dialogFieldApplied(this);
- }
- }
-
- // ------- focus management
-
-
- public boolean setFocus() {
- return false;
- }
-
- //
- // /**
- // * Posts <code>setFocus</code> to the display event queue.
- // */
- // public void postSetFocusOnDialogField(Display display)
- // {
- // if (display != null)
- // {
- // display.asyncExec(new Runnable()
- // {
- // public void run()
- // {
- // setFocus();
- // }
- // }
- // );
- // }
- // }
-
- // ------- layout helpers
-
- public Control[] doFillIntoGrid(FormToolkit toolkit, Composite parent,
- int nColumns) {
- assertEnoughColumns(nColumns);
-
- Control label = getLabelControl(toolkit, parent);
- label.setLayoutData(gridDataForLabel(nColumns));
-
- return new Control[] { label };
- }
-
- /**
- * Initializes the computation of horizontal and vertical dialog units based
- * on the size of current font.
- * <p>
- * This method must be called before any of the dialog unit based conversion
- * methods are called.
- * </p>
- *
- * @param control
- * a control from which to obtain the current font
- * @return the font metrics for control
- */
- protected FontMetrics getDialogUnits(Control control) {
- if (_fontMetrics == null) {
- // Compute and store a font metric
- GC gc = new GC(control);
- gc.setFont(control.getFont());
- _fontMetrics = gc.getFontMetrics();
- gc.dispose();
- }
- return _fontMetrics;
- }
-
- /**
- * Returns the number of columns of the dialog field. To be reimplemented by
- * dialog field implementors.
- */
- public int getNumberOfControls() {
- return 1;
- }
-
- /**
- * @param span
- * @return a new GridData for the horizontal 'span' value
- */
- protected static GridData gridDataForLabel(int span) {
- GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- gd.horizontalSpan = span;
- return gd;
- }
-
- // ------- ui creation
-
- /**
- * Creates or returns the created label widget.
- *
- * @param parent
- * The parent composite or <code>null</code> if the widget has
- * already been created.
- */
- public Control getLabelControl(FormToolkit _formToolkit, Composite parent) {
- Control control = null;
- if ((_label == null || _label.isDisposed()) && (_hyperlink == null || _hyperlink.isDisposed())) {
- assertCompositeNotNull(parent);
-
- String label = null;
- if (_labelText != null && !"".equals(_labelText)) { //$NON-NLS-1$
- //$NON-NLS-1$
- label = _labelText;
- } else {
- label = "."; //$NON-NLS-1$
- }
-
- if (_listener == null) {
- control = createLabel(_formToolkit, parent, label);
- } else {
- control = createHyperlink(_formToolkit, parent, label);
- }
- /**
- * if(isRequired) { FontData[] fontData =
- * parent.getFont().getFontData(); FontData[] newFontData = new
- * FontData[fontData.length]; for(int i=0; i<fontData.length; i++) {
- * newFontData[i] = new FontData(fontData[i].getName(),
- * fontData[i].getHeight(), fontData[i].getStyle() | SWT.BOLD); }
- * final Font font = new Font(control.getDisplay(),newFontData);
- * control.setFont(font); control.addDisposeListener(new
- * DisposeListener() {
- *
- * public void widgetDisposed(DisposeEvent e) { font.dispose(); }
- * }); } else { control.setFont(parent.getFont()); }
- */
- control.setFont(parent.getFont());
- control.setEnabled(_enabled);
- } else {
- if (_label != null) {
- control = _label;
- } else {
- control = _hyperlink;
- }
- }
- return control;
- }
-
- /**
- * @param _formToolkit
- * @param parent
- * @return get the Label control for required
- */
- public Control getRequiredLabelControl(FormToolkit _formToolkit,
- Composite parent) {
- if (_requiredLabel == null || _requiredLabel.isDisposed()) {
- if (_formToolkit == null) {
- _requiredLabel = new Label(parent, SWT.LEFT | SWT.WRAP);
- } else {
- _requiredLabel = _formToolkit.createLabel(parent, "", SWT.LEFT //$NON-NLS-1$
- | SWT.WRAP);
- _requiredLabel.setForeground(getLabelColor());
- }
- if (_isRequired) {
- _requiredLabel.setText(DialogFieldResources.getInstance()
- .getString("DialogFieldBase.Label.RequiredSymbol")); //$NON-NLS-1$
- }
- }
- return _requiredLabel;
- }
-
- private Control createLabel(FormToolkit _formToolkit, Composite parent,
- String labelString) {
- if (_formToolkit == null) {
- _label = new Label(parent, SWT.LEFT | SWT.WRAP);
- _label.setText(labelString);
- } else {
- _label = _formToolkit.createLabel(parent, labelString, SWT.LEFT
- | SWT.WRAP);
- _label.setForeground(getLabelColor());
- }
- return _label;
- }
-
- /**
- * get color for label
- */
- private Color getLabelColor() {
- String osname = System.getProperty("os.name").toLowerCase(); //$NON-NLS-1$
- if (osname.startsWith("mac os")) { //$NON-NLS-1$
- return Display.getCurrent().getSystemColor(
- SWT.COLOR_LIST_FOREGROUND);
- }
- return Display.getCurrent()
- .getSystemColor(SWT.COLOR_LIST_SELECTION);
- }
-
- private Control createHyperlink(FormToolkit _formToolkit, Composite parent,
- String label) {
- if (_formToolkit == null) {
- _hyperlink = new Hyperlink(parent, SWT.LEFT | SWT.WRAP);
- _hyperlink.setForeground(getLabelColor());
- _hyperlink.setUnderlined(true);
- _hyperlink.addMouseTrackListener(new MouseTrackAdapter() {
-
- public void mouseEnter(MouseEvent e) {
- _hyperlink.setForeground(Display.getCurrent()
- .getSystemColor(SWT.COLOR_BLUE));
- }
-
- public void mouseExit(MouseEvent e) {
- _hyperlink.setForeground(getLabelColor());
- }
- });
- _hyperlink.setText(label);
- } else {
- _hyperlink = _formToolkit.createHyperlink(parent, label, SWT.LEFT
- | SWT.WRAP);
- }
- _hyperlink.addHyperlinkListener(_listener);
- return _hyperlink;
- }
-
- /**
- * Creates a spacer control.
- * @param toolkit
- *
- * @param parent
- * The parent composite
- * @return a spacer control
- */
- public Control createEmptySpace(FormToolkit toolkit, Composite parent) {
- return createEmptySpace(toolkit, parent, 1);
- }
-
- /**
- * Creates a spacer control with the given span. The composite is assumed to
- * have <code>MGridLayout</code> as layout.
- * @param toolkit
- *
- * @param parent
- * The parent composite
- * @param span
- * @return a label that creates empty space
- */
- public Control createEmptySpace(FormToolkit toolkit, Composite parent,
- int span) {
- Label label;
- if (toolkit != null) {
- label = toolkit.createLabel(parent, ""); //$NON-NLS-1$
- } else {
- label = new Label(parent, SWT.LEFT);
- }
- GridData gd = new GridData();
- gd.horizontalAlignment = GridData.BEGINNING;
- gd.grabExcessHorizontalSpace = false;
- gd.horizontalSpan = span;
- gd.horizontalIndent = 0;
- gd.widthHint = 0;
- gd.heightHint = 0;
- label.setLayoutData(gd);
- return label;
- }
-
- /**
- * Tests is the control is not <code>null</code> and not disposed.
- * @param control
- * @return true if the control is valid for use
- */
- protected final boolean isOkToUse(Control control) {
- return (control != null) && !(control.isDisposed());
- }
-
- // --------- enable / disable management
-
- /**
- * Sets the enable state of the dialog field.
- */
- public final void setEnabled(boolean enabled) {
- if (enabled != _enabled) {
- _enabled = enabled;
- updateEnableState();
- }
- }
-
- /**
- * Called when the enable state changed. To be extended by dialog field
- * implementors.
- */
- protected void updateEnableState() {
- if (_label != null && !_label.isDisposed()) {
- _label.setEnabled(_enabled);
- }
- if (_hyperlink != null && !_hyperlink.isDisposed()) {
- _hyperlink.setEnabled(_enabled);
- }
- }
-
- /**
- * Gets the enable state of the dialog field.
- */
- public final boolean isEnabled() {
- return _enabled;
- }
-
- /**
- * @param comp
- */
- protected final void assertCompositeNotNull(Composite comp) {
- Assert.isNotNull(comp,
- "uncreated control requested with composite null"); //$NON-NLS-1$
- }
-
- /**
- * @param nColumns
- */
- protected final void assertEnoughColumns(int nColumns) {
- Assert.isTrue(nColumns >= getNumberOfControls(),
- "given number of columns is too small"); //$NON-NLS-1$
- }
-
- /**
- * Get attached data by key.
- *
- * @param key
- * @return the attached data object for key
- */
- public Object getAttachedData(Object key) {
- if (_attachedData != null) {
- return _attachedData.get(key);
- }
- return null;
- }
-
- /**
- * You can attach any data to the DialogField, and get it using the
- * <code>getAttachedData</code> method.
- *
- * @param key
- * @param value
- */
- public void putAttachedData(Object key, Object value) {
- if (_attachedData == null) {
- _attachedData = new HashMap();
- }
- _attachedData.put(key, value);
- }
-
- /**
- * this method give the DialogField a chance to set the correct column to
- * grab horizontal space. In the implementation of this method, should only
- * change the GridData of control, should not do anything else.
- *
- * The caller is responsible to make sure the controls for the dialog field
- * has been created before calling this method.
- */
- public void handleGrabHorizontal() {
- // do nothing.
- }
-
- public boolean isRequired() {
- return _isRequired;
- }
-
- /**
- * @param isRequired
- */
- public void setRequired(boolean isRequired) {
- this._isRequired = isRequired;
- }
-
- /**
- * @return gthe tool tip text
- */
- protected String getToolTip() {
- return toolTip;
- }
-
- public void setToolTip(String toolTip) {
- this.toolTip = toolTip;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldGroup.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldGroup.java
deleted file mode 100644
index 0ed7b3a66..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldGroup.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * This class represents a group of dialog fields, following the normal dialog
- * field's lifecycle.
- *
- * The design of this class is to make a section could be reused in both dialog
- * environment and form based editor environment.
- *
- * @author mengbo
- */
-public abstract class DialogFieldGroup {
- private IDialogFieldChangeListener _defaultChangeListener;
-
- private IDialogFieldApplyListener _defaultApplyListener;
-
- /**
- * set default handler, should be called before <code>initialize()</code>
- * @param changelistener
- *
- */
- public void setDefaultChangeListener(
- IDialogFieldChangeListener changelistener) {
- _defaultChangeListener = changelistener;
- }
-
- /**
- * Normally, the client should call this method in <code>initialize()</code>
- * for those field that wants to use the default event handler.
- *
- * @return could be null
- */
- public IDialogFieldChangeListener getDefaultChangeListener() {
- return _defaultChangeListener;
- }
-
- /**
- * set default handler, should be called before <code>initialize()</code>
- *
- * @param applylistener
- */
- public void setDefaultApplyListener(IDialogFieldApplyListener applylistener) {
- _defaultApplyListener = applylistener;
- }
-
- /**
- * Normally, the client should call this method in <code>initialize()</code>
- * for those field that wants to use the default event handler.
- *
- * @return could be null
- */
- public IDialogFieldApplyListener getDefaultApplyListener() {
- return _defaultApplyListener;
- }
-
- /**
- * it is supposed to create all dialog fields and setup event listeners in
- * this method.
- *
- * Normally client will create DialogFieldSection first, then
- * setDefaultChangeListener()/setDefaultApplyListener(), then call
- * initialize().
- */
- public abstract void initialize();
-
- /**
- * reload data from underlying model and set them into the dialog fields.
- *
- */
- public abstract void refreshData();
-
- /**
- * layout the dialog fields.
- *
- * @param toolkit
- * could be null
- * @param parent
- *
- */
- public abstract void layoutDialogFields(FormToolkit toolkit,
- Composite parent);
-
- /**
- * validate whether the values in the dialog fields are valid. This method
- * should also enable/disable dialog fields based on their current value and
- * relationship
- *
- * @return could return null. or an array containing null elements.
- */
- public abstract IStatus[] validateDialogFields();
-
- /**
- * Intended to allow subclasses to recreate controls. Default implementation does nothing.
- */
- public void reset(){
- //do nothing by default
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldGroupPage.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldGroupPage.java
deleted file mode 100644
index 2e10f45e3..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldGroupPage.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @author mengbo
- */
-public class DialogFieldGroupPage extends WizardPage {
- private DialogFieldGroup _group;
-
- private IDialogFieldChangeListener _defaultChangeListener = new IDialogFieldChangeListener() {
- public void dialogFieldChanged(DialogField field) {
- validate();
- }
- };
-
- /**
- * @param pageName
- * @param section
- */
- public DialogFieldGroupPage(String pageName, DialogFieldGroup section) {
- super(pageName);
- _group = section;
- initializeGroup(_group);
- }
-
- /**
- * child class could override this method.
- *
- * @param group
- */
- protected void initializeGroup(DialogFieldGroup group) {
- group.setDefaultChangeListener(_defaultChangeListener);
- group.initialize();
- }
-
- public void createControl(Composite parent) {
- Composite container = new Composite(parent, SWT.NONE);
- _group.layoutDialogFields(null, container);
- _group.refreshData();
- validate();
- this.setControl(container);
- }
-
- /**
- * @return the dialog field group
- */
- public DialogFieldGroup getDialogFieldGroup() {
- return _group;
- }
-
- /**
- * validate all the dialog fields. Updates
- * status line and sets page completion if there are no errors
- */
- private void validate() {
- IStatus[] statuses = _group.validateDialogFields();
- IStatus status = StatusUtil.getMostSevere(statuses);
- StatusUtil.applyToStatusLine(this, status);
- setPageComplete(status == null || status.getSeverity() != IStatus.ERROR);
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldResources.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldResources.java
deleted file mode 100644
index 30828e6b7..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldResources.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.jst.jsf.common.ui.internal.logging.Logger;
-import org.eclipse.jst.jsf.common.ui.internal.utils.ResourceUtils;
-
-/**
- * Resource bundle class for datastore wizard and it's pages
- *
- * @author mengbo
- */
-/*package*/ class DialogFieldResources extends ResourceUtils {
- /** Create the logger for this class */
- private static Logger _log = JSFUICommonPlugin
- .getLogger(DialogFieldResources.class);
-
- private static DialogFieldResources _resource; // singleton
-
- private static final String BUNDLE = DialogFieldResources.class.getName();
-
- /**
- * Empty Constructor.
- *
- * @return WizardsResources
- */
-
- public static DialogFieldResources getInstance() {
- if (_resource == null) {
- _resource = new DialogFieldResources();
- }
- return _resource;
- }
-
- /**
- * The constructor create a resource bundle
- */
- protected DialogFieldResources() {
- try {
- _resources = ResourceBundle.getBundle(BUNDLE);
- // NOTE: this throws a runtime "MissingResourceException".
- } catch (MissingResourceException ee) {
- // Wizards.WizardResource.Error.ResourceNotFound = Unable to locate
- // resource.
- _log.error("Wizards.WizardResource.Error.ResourceNotFound", ee); //$NON-NLS-1$
- }
- setBundle(_resources, BUNDLE);
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldResources.properties b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldResources.properties
deleted file mode 100644
index ad34404dd..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldResources.properties
+++ /dev/null
@@ -1,48 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2007 Oracle Corporation 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:
-# Oracle Corporation - initial API and implementation
-###############################################################################
-##################################################################
-# Resource message for SourceFolderButtonDialogField.
-##################################################################
-SourceFolderButtonDialogField.container.label = Source Folder:
-SourceFolderButtonDialogField.container.button = Browse...
-
-SourceFolderButtonDialogField.ChooseSourceContainerDialog.Title = Folder Selection
-SourceFolderButtonDialogField.ChooseSourceContainerDialog.Description = Choose a folder:
-
-SourceFolderButtonDialogField.error.EnterContainerName = Folder name is empty.
-SourceFolderButtonDialogField.error.NotSameProject = The project should be \''{0}\''.
-SourceFolderButtonDialogField.error.ContainerIsBinary=''{0}'' is a JAR archive.
-SourceFolderButtonDialogField.error.ContainerDoesNotExist=Folder ''{0}'' does not exist.
-SourceFolderButtonDialogField.error.NotAFolder=''{0}'' must be a project or folder.
-SourceFolderButtonDialogField.error.ProjectClosed=Project ''{0}'' must be accessible.
-SourceFolderButtonDialogField.warning.NotAJavaProject=Folder ''{0}'' is not a Java project.
-SourceFolderButtonDialogField.warning.NotInAJavaProject=Folder ''{0}'' is not in a Java project.
-SourceFolderButtonDialogField.warning.NotOnClassPath=Folder ''{0}'' is not on the Java build class path.
-
-
-##################################################################
-# Resource message for PackageButtonDialogField.
-##################################################################
-PackageButtonDialogField.package.label=Pac&kage:
-PackageButtonDialogField.package.button=Bro&wse...
-
-PackageButtonDialogField.error.InvalidPackageName=Package name ''{0}'' is not valid.
-PackageButtonDialogField.error.ClashOutputLocation=Package clashes with project output folder.
-PackageButtonDialogField.warning.DiscouragedPackageName=This package name ''{0}'' is discouraged.
-PackageButtonDialogField.warning.DefaultPackageDiscouraged=The use of the default package is discouraged.
-
-PackageButtonDialogField.ChoosePackageDialog.title=Package Selection
-PackageButtonDialogField.ChoosePackageDialog.description=&Choose a folder:
-PackageButtonDialogField.ChoosePackageDialog.empty=Cannot find packages to select.
-
-ClassButtonDialogField.Alert.Title=Error Open Type
-ClassButtonDialogField.Alert.Msg=The project does not have Java Nature.
-DialogFieldBase.Label.RequiredSymbol=* \ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/IDialogFieldApplyListener.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/IDialogFieldApplyListener.java
deleted file mode 100644
index e8be7b8f8..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/IDialogFieldApplyListener.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-
-/**
- * @author mengbo
- */
-public interface IDialogFieldApplyListener {
- /**
- * when the DialogField believe it should apply its value in UI, will fire
- * this event.
- *
- * Normally, for text input, when user is typing, will only fire
- * dialogFieldChanged(), when lose focus will fire dialogFieldApplied().
- *
- * For other control, such as readonly combo box, whenever user change
- * selection, will fire both dialogFieldChanged() and dialogFieldApplied()
- *
- * @param field
- */
- void dialogFieldApplied(DialogField field);
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/IDialogFieldChangeListener.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/IDialogFieldChangeListener.java
deleted file mode 100644
index b5ead67e0..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/IDialogFieldChangeListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-
-/**
- * Change listener used by <code>DialogField</code>
- *
- * @author mengbo
- */
-public interface IDialogFieldChangeListener {
-
- /**
- * The dialog field has changed.
- * @param field
- */
- void dialogFieldChanged(DialogField field);
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/IStringButtonAdapter.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/IStringButtonAdapter.java
deleted file mode 100644
index 466e35578..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/IStringButtonAdapter.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-
-/**
- * Change listener used by <code>StringButtonDialogField</code>
- */
-public interface IStringButtonAdapter {
-
- /**
- * @param field
- */
- void changeControlPressed(DialogField field);
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ISupportTextValue.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ISupportTextValue.java
deleted file mode 100644
index 014752d66..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ISupportTextValue.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-/**
- * DialogField can choose to also implement this interface. The purpose of this
- * interface is to make DialogFields to be more easily used to edit element
- * attributes, since attributes are all of string type.
- *
- * @author mengbo
- * @version 1.5
- */
-public interface ISupportTextValue {
- /**
- * @param value
- */
- public void setTextWithoutUpdate(String value);
-
- /**
- * @return the text
- */
- public String getText();
-
- /**
- * @param value
- */
- public void setText(String value);
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaClassWizard.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaClassWizard.java
deleted file mode 100644
index 745874044..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaClassWizard.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
-
-/**
- * @author mengbo
- */
-/*package*/ class JavaClassWizard extends Wizard {
- private static String STORE_SECTION = "JavaClassWizard"; //$NON-NLS-1$
-
- private JavaClassWizardPage _mainPage;
-
- private String _className, _classArgs;
-
- private IProject _project;
-
- private String _superClass;
-
- private List _interfaceList;
-
- private boolean _autoOpenResource = true;
-
- /**
- * @param autoOpenResource
- */
- public void setAutoOpenResource(boolean autoOpenResource) {
- _autoOpenResource = autoOpenResource;
- }
-
- /**
- * @param project
- * @param className
- */
- public JavaClassWizard(IProject project, String className) {
- this(project, className, null, null);
- }
-
- /**
- * @param project
- * @param className
- * @param superClass
- * @param superInterfaces
- */
- public JavaClassWizard(IProject project, String className,
- String superClass, List superInterfaces) {
- this._project = project;
- this._className = className;
- this._superClass = superClass;
- this._interfaceList = superInterfaces;
- IDialogSettings masterSettings = JSFUICommonPlugin.getDefault()
- .getDialogSettings();
- setDialogSettings(getSettingsSection(masterSettings));
- setWindowTitle(JSFUICommonPlugin
- .getResourceString("DialogField.JavaClassWizard.NewClass"));//$NON-NLS-1$
- setNeedsProgressMonitor(true);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.wizard.IWizard#addPages()
- */
- public void addPages() {
- _mainPage = new JavaClassWizardPage(_project, _className, _superClass,
- _interfaceList);
- addPage(_mainPage);
- _mainPage.init();
- }
-
- private IDialogSettings getSettingsSection(IDialogSettings master) {
- IDialogSettings setting = master.getSection(STORE_SECTION);
- if (setting == null) {
- setting = master.addNewSection(STORE_SECTION);
- }
- return setting;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.wizard.IWizard#performFinish()
- */
- public boolean performFinish() {
- if (_mainPage.getPackageText() != null
- && _mainPage.getPackageText().length() > 0) {
- StringBuffer buffer = new StringBuffer(_mainPage.getPackageText());
- buffer.append(".");//$NON-NLS-1$
- buffer.append(_mainPage.getTypeName());
- _className = buffer.toString();
- } else {
- _className = _mainPage.getTypeName();
- }
- _classArgs = _mainPage.getClassArgs();
- IRunnableWithProgress op = new WorkspaceModifyOperation() {
- protected void execute(IProgressMonitor monitor)
- throws CoreException, InvocationTargetException,
- InterruptedException {
- _mainPage.createType(monitor);
- IResource resource = _mainPage.getModifiedResource();
- if (resource != null && _autoOpenResource) {
- selectAndReveal(resource);
- if (_project.hasNature(JavaCore.NATURE_ID)) {
- IJavaProject jProject = JavaCore.create(_project);
- IJavaElement jElement = jProject.findElement(resource
- .getProjectRelativePath()
- .removeFirstSegments(1));
- if (jElement != null) {
- JavaUI.openInEditor(jElement);
- }
- } else if (resource instanceof IFile) {
- IWorkbenchPage page = PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getActivePage();
- IDE.openEditor(page, (IFile) resource, true);
- }
- }
- }
-
- };
- try {
- getContainer().run(false, true, op);
- } catch (InvocationTargetException e) {
- e.printStackTrace(); // PDEPlugin.logException(e);
- } catch (InterruptedException e) {
- e.printStackTrace();// PDEPlugin.logException(e);
- }
- return true;
- }
-
- private void selectAndReveal(IResource newResource) {
- BasicNewResourceWizard.selectAndReveal(newResource,
- getWorkbenchWindow());
- }
-
- private IWorkbenchWindow getWorkbenchWindow() {
- return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- }
-
- private String getClassName() {
- return _className;
- }
-
- /**
- * @return the class name including args
- */
- public String getClassNameWithArgs() {
- if (_classArgs != null && _classArgs.length() > 0) {
- StringBuffer buffer = new StringBuffer(_className);
- buffer.append(":");//$NON-NLS-1$
- buffer.append(_classArgs);
- return buffer.toString();
- }
- return getClassName();
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaClassWizardPage.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaClassWizardPage.java
deleted file mode 100644
index b445c60c2..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaClassWizardPage.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaConventions;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.ui.wizards.NewClassWizardPage;
-
-/**
- * @author mengbo
- */
-/*package*/ class JavaClassWizardPage extends NewClassWizardPage {
- private String _className;
-
- private final IProject _project;
-
- private final InitialClassProperties _initialValues;
-
- private IJavaProject _javaProject;
-
- private IStatus _fClassNameStatus, _fPackageNameStatus;
-
- private final static String SOURCE_COMPLIANCE_1_3 = JavaCore.VERSION_1_3;
-
- static class InitialClassProperties {
- // populate new wizard page
- private String superClassName;
-
- private List interfacesName;
-
- private String className;
-
- private String classArgs;
-
- private String packageName;
-
- private IPackageFragmentRoot packageFragmentRoot;
-
- private IPackageFragment packageFragment;
-
- InitialClassProperties() {
- this.superClassName = ""; //$NON-NLS-1$
- this.interfacesName = null;
- this.className = null;
- this.classArgs = null;
- this.packageName = null;
- this.packageFragment = null;
- this.packageFragmentRoot = null;
- }
- }
-
- /**
- * @param project
- * @param className
- * @param superClassName
- * @param interfacesName
- */
- public JavaClassWizardPage(IProject project, String className,
- String superClassName, List interfacesName) {
- super();
- this._className = className;
- this._project = project;
- try {
- if (project != null && project.hasNature(JavaCore.NATURE_ID)) {
- this._javaProject = JavaCore.create(project);
- } else {
- this._javaProject = null;
- }
- } catch (CoreException e) {
- e.printStackTrace();// PDEPlugin.logException(e);
- }
- _initialValues = new InitialClassProperties();
- _initialValues.className = className;
- _initialValues.superClassName = superClassName;
- _initialValues.interfacesName = interfacesName;
- }
-
- /**
- * @param project
- * @param className
- */
- public JavaClassWizardPage(IProject project, String className) {
- this(project, className, null, null);
- }
-
- /**
- * Call when page is added to wizard to initialize
- */
- public void init() {
- initializeExpectedValues();
- initializeWizardPage();
- }
-
- private void initializeExpectedValues() {
- // source folder name, package name, class name
- int loc = _className.indexOf(":"); //$NON-NLS-1$
- if (loc != -1) {
- if (loc < _className.length()) {
- _initialValues.classArgs = _className.substring(loc + 1,
- _className.length());
- _className = _className.substring(0, loc);
- }
- if (loc > 0) {
- _initialValues.className = _className.substring(0, loc);
- } else if (loc == 0) {
- _initialValues.className = ""; //$NON-NLS-1$
- }
- }
- _fClassNameStatus = JavaConventions
- .validateJavaTypeName(_initialValues.className, SOURCE_COMPLIANCE_1_3,SOURCE_COMPLIANCE_1_3);
-
- loc = _className.lastIndexOf('.');
- if (loc != -1) {
- _initialValues.packageName = _className.substring(0, loc);
- _initialValues.className = _className.substring(loc + 1);
- _fPackageNameStatus = JavaConventions
- .validateJavaTypeName(_initialValues.packageName, SOURCE_COMPLIANCE_1_3,SOURCE_COMPLIANCE_1_3);
- _fClassNameStatus = JavaConventions
- .validateJavaTypeName(_initialValues.className, SOURCE_COMPLIANCE_1_3,SOURCE_COMPLIANCE_1_3);
- }
- if (_javaProject == null) {
- return;
- }
- try {
- if (_initialValues.packageFragmentRoot == null) {
- IPackageFragmentRoot srcEntryDft = null;
- IPackageFragmentRoot[] roots = _javaProject
- .getPackageFragmentRoots();
- for (int i = 0; i < roots.length; i++) {
- if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) {
- srcEntryDft = roots[i];
- break;
- }
- }
- if (srcEntryDft != null) {
- _initialValues.packageFragmentRoot = srcEntryDft;
- } else {
- _initialValues.packageFragmentRoot = _javaProject
- .getPackageFragmentRoot(_javaProject.getResource());
- }
- if (_initialValues.packageFragment == null
- && _initialValues.packageFragmentRoot != null
- && _initialValues.packageName != null
- && _initialValues.packageName.length() > 0) {
- IFolder packageFolder = _project
- .getFolder(_initialValues.packageName);
- _initialValues.packageFragment = _initialValues.packageFragmentRoot
- .getPackageFragment(packageFolder
- .getProjectRelativePath().toOSString());
- }
- }
- // superclass and interface
- if (_initialValues.superClassName == null) {
- _initialValues.superClassName = "java.lang.Object"; //$NON-NLS-1$
- }
-// _initialValues.superClassType = findTypeForName(_initialValues.superClassName);
- } catch (JavaModelException e) {
- e.printStackTrace();// PDEPlugin.logException(e);
- }
- }
-
- /**
- * initialize the wizard page
- */
- protected void initializeWizardPage() {
- setPackageFragmentRoot(_initialValues.packageFragmentRoot, true);
- setPackageFragment(_initialValues.packageFragment, true);
- setEnclosingType(null, true);
- setEnclosingTypeSelection(false, true);
- setTypeName(_initialValues.className, true);
- setSuperClass(_initialValues.superClassName, true);
- if (_initialValues.interfacesName != null) {
- setSuperInterfaces(_initialValues.interfacesName, true);
- }
- boolean hasSuperClass = _initialValues.superClassName != null
- && _initialValues.superClassName.length() > 0;
- boolean hasInterface = _initialValues.interfacesName != null
- && _initialValues.interfacesName.size() > 0;
- setMethodStubSelection(false, hasSuperClass, hasInterface
- || hasSuperClass, true);
- }
-
-// private IType findTypeForName(String typeName) throws JavaModelException {
-// if (typeName == null || typeName.length() == 0) {
-// return null;
-// }
-// IType type = null;
-// String fileName = typeName.replace('.', '/') + ".java"; //$NON-NLS-1$
-// IJavaElement element = _javaProject.findElement(new Path(fileName));
-// if (element == null) {
-// return null;
-// }
-// if (element instanceof IClassFile) {
-// type = ((IClassFile) element).getType();
-// } else if (element instanceof ICompilationUnit) {
-// IType[] types = ((ICompilationUnit) element).getTypes();
-// type = types[0];
-// }
-// return type;
-// }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.ui.wizards.NewClassWizardPage#setVisible(boolean)
- */
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- // policy: wizards are not allowed to come up with an error message;
- // in this wizard, some fields may need initial validation and thus,
- // potentially start with an error message.
- if (_fClassNameStatus != null && !_fClassNameStatus.isOK()) {
- updateStatus(_fClassNameStatus);
- }
- if (_fPackageNameStatus != null && !_fPackageNameStatus.isOK()) {
- updateStatus(_fPackageNameStatus);
- }
- }
-
- /**
- * @return the class arguments or "" if not set
- */
- public String getClassArgs() {
- if (_initialValues.classArgs == null) {
- return ""; //$NON-NLS-1$
- }
- return _initialValues.classArgs;
- }
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaSearchScope.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaSearchScope.java
deleted file mode 100644
index 8ac58072d..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaSearchScope.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.ITypeHierarchy;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.search.IJavaSearchScope;
-import org.eclipse.jst.jsf.common.ui.IFileFolderConstants;
-
-/**
- * @author mengbo
- */
-/*package*/ class JavaSearchScope implements IJavaSearchScope {
- private final IProject _project;
-
- private final String _superType;
-
- private HashSet _allowedTypeSet;
-
- private IPath[] _enclosingProjectsAndJars;
-
- private IProject[] _relativeProjects;
-
- /**
- * @param project
- * @param superType
- */
- public JavaSearchScope(IProject project, String superType) {
- this._project = project;
- this._superType = superType;
- computeRelativeProjects();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.core.search.IJavaSearchScope#enclosingProjectsAndJars()
- */
- public IPath[] enclosingProjectsAndJars() {
- if (_enclosingProjectsAndJars == null) {
- ArrayList list = new ArrayList();
- for (int i = 0; i < _relativeProjects.length; i++) {
- try {
- if (_relativeProjects[i].hasNature(JavaCore.NATURE_ID)) {
- IJavaProject javaProject = JavaCore
- .create(_relativeProjects[i]);
- IClasspathEntry[] classpath = javaProject
- .getResolvedClasspath(true);
- for (int j = 0; j < classpath.length; j++) {
- list.add(classpath[j].getPath());
- }
- list.add(javaProject.getPath());
- }
- } catch (CoreException e)// NOPMD
- {
- // skip the project.
- }
- }
- _enclosingProjectsAndJars = (IPath[]) list.toArray(new IPath[(list
- .size())]);
- }
- return _enclosingProjectsAndJars;
- }
-
- private void computeRelativeProjects() {
- try {
- IProject[] referencedProjects = _project.getReferencedProjects();
- _relativeProjects = new IProject[referencedProjects.length + 1];
- System.arraycopy(referencedProjects, 0, _relativeProjects, 1,
- referencedProjects.length);
- _relativeProjects[0] = _project;
- } catch (CoreException e) {
- _relativeProjects = new IProject[] { _project };
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.core.search.IJavaSearchScope#encloses(java.lang.String)
- */
- public boolean encloses(String resourcePath) {
- if (_allowedTypeSet == null) {
- try {
- _allowedTypeSet = findAllowedTypes(_superType);
- } catch (CoreException e) {
- e.printStackTrace();
- }
- }
- if (_allowedTypeSet == null) {
- _allowedTypeSet = new HashSet();
- }
- int separatorIndex = resourcePath.indexOf(JAR_FILE_ENTRY_SEPARATOR);
- if (separatorIndex != -1) {
- String className = resourcePath.substring(separatorIndex + 1,
- resourcePath.length() - 6).replace('/', '.');
- if (_allowedTypeSet.contains(className)) {
- return true;
- }
- } else if (_allowedTypeSet.contains(resourcePath)) {
- return true;
- }
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.core.search.IJavaSearchScope#encloses(org.eclipse.jdt.core.IJavaElement)
- */
- public boolean encloses(IJavaElement element) {
- return encloses(element.getPath().toString());
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.core.search.IJavaSearchScope#includesBinaries()
- */
- public boolean includesBinaries() {
- return true;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.core.search.IJavaSearchScope#includesClasspaths()
- */
- public boolean includesClasspaths() {
- return true;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.core.search.IJavaSearchScope#setIncludesBinaries(boolean)
- */
- public void setIncludesBinaries(boolean includesBinaries) {
- // do nothing, includeBinaries always true
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.core.search.IJavaSearchScope#setIncludesClasspaths(boolean)
- */
- public void setIncludesClasspaths(boolean includesClasspaths) {
- // do nothing, includeClasspaths always trues
- }
-
- private HashSet findAllowedTypes(String superType) throws CoreException {
- HashSet set = new HashSet();
-
- IProject[] projects = _relativeProjects;
-
- for (int i = 0; i < projects.length; i++) {
- IType type = null;
- if (projects[i].hasNature(JavaCore.NATURE_ID)) {
- IJavaProject javaProject = JavaCore.create(projects[i]);
- if (superType != null) {
- try {
- type = javaProject.findType(superType);
- if (type != null) {
- ITypeHierarchy typeHierarchy = type
- .newTypeHierarchy(javaProject, null);
- IType[] subtypes = typeHierarchy
- .getAllSubtypes(type);
- for (int j = 0; j < subtypes.length; j++) {
- if (!subtypes[j].isBinary()) {
- set.add(subtypes[j].getPath().toString());
- } else {
- String path = subtypes[j].getPath()
- .toString();
- if (path != null
- && path
- .endsWith(IFileFolderConstants.DOT
- + IFileFolderConstants.EXT_JAR)) {
- set.add(subtypes[j]
- .getFullyQualifiedName());
- } else {
- set.add(path);
- }
- }
- }
- }
- } catch (JavaModelException e) {
- e.printStackTrace();
- }
- }
- }
- }
- return set;
- }
-
- /**
- * @return Returns the superType.
- */
- public String getSuperType() {
- return _superType;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaSearchScopeDecorator.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaSearchScopeDecorator.java
deleted file mode 100644
index 94cd55ca1..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaSearchScopeDecorator.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.search.IJavaSearchScope;
-
-/**
- * @author mengbo
- * @version 1.5
- */
-/*package*/ class JavaSearchScopeDecorator implements IJavaSearchScope {
- JavaSearchScope[] _scopes = new JavaSearchScope[0];
-
- /**
- * @param project
- * @param superTypes
- */
- public JavaSearchScopeDecorator(IProject project, List superTypes) {
- List scopeList = new ArrayList();
- if (superTypes != null) {
- for (int i = 0; i < superTypes.size(); i++) {
- scopeList.add(new JavaSearchScope(project, superTypes.get(i)
- .toString()));
- }
- }
- _scopes = (JavaSearchScope[]) scopeList
- .toArray(new JavaSearchScope[scopeList.size()]);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.core.search.IJavaSearchScope#encloses(java.lang.String)
- */
- public boolean encloses(String resourcePath) {
- for (int i = 0; i < _scopes.length; i++) {
- if (_scopes[i].encloses(resourcePath) == true) {
- return true;
- }
- }
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.core.search.IJavaSearchScope#encloses(org.eclipse.jdt.core.IJavaElement)
- */
- public boolean encloses(IJavaElement element) {
- for (int i = 0; i < _scopes.length; i++) {
- if (_scopes[i].encloses(element) == true) {
- return true;
- }
- }
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.core.search.IJavaSearchScope#enclosingProjectsAndJars()
- */
- public IPath[] enclosingProjectsAndJars() {
- Set set = new HashSet();
- for (int i = 0; i < _scopes.length; i++) {
- set.addAll(Arrays.asList(_scopes[i].enclosingProjectsAndJars()));
- }
- return (IPath[]) set.toArray(new IPath[set.size()]);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.core.search.IJavaSearchScope#includesBinaries()
- */
- public boolean includesBinaries() {
- for (int i = 0; i < _scopes.length; i++) {
- if (_scopes[i].includesBinaries() == true) {
- return true;
- }
- }
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.core.search.IJavaSearchScope#includesClasspaths()
- */
- public boolean includesClasspaths() {
- for (int i = 0; i < _scopes.length; i++) {
- if (_scopes[i].includesClasspaths() == true) {
- return true;
- }
- }
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.core.search.IJavaSearchScope#setIncludesBinaries(boolean)
- */
- public void setIncludesBinaries(boolean includesBinaries) {
- for (int i = 0; i < _scopes.length; i++) {
- _scopes[i].setIncludesBinaries(includesBinaries);
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jdt.core.search.IJavaSearchScope#setIncludesClasspaths(boolean)
- */
- public void setIncludesClasspaths(boolean includesClasspaths) {
- for (int i = 0; i < _scopes.length; i++) {
- _scopes[i].setIncludesClasspaths(includesClasspaths);
- }
- }
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaUIHelper.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaUIHelper.java
deleted file mode 100644
index 8bee86022..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaUIHelper.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.search.IJavaSearchScope;
-import org.eclipse.jdt.core.search.SearchEngine;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * @author mengbo
- */
-public final class JavaUIHelper {
- /**
- * @param project
- * @param className
- */
- static void doOpenClass(IProject project, String className) {
- String path = className.replace('.', '/') + ".java"; //$NON-NLS-1$
- try {
- if (project.hasNature(JavaCore.NATURE_ID)) {
- IJavaProject javaProject = JavaCore.create(project);
- IJavaElement result = javaProject.findElement(new Path(path));
- JavaUI.openInEditor(result);
- } else {
- IResource resource = project.findMember(new Path(path));
- if (resource instanceof IFile) {
- IWorkbenchPage page = PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getActivePage();
- IDE.openEditor(page, (IFile) resource, true);
- }
- }
- } catch (PartInitException e) {
- e.printStackTrace();// PDEPlugin.logException(e);
- } catch (JavaModelException e) {
- e.printStackTrace();// Display.getCurrent().beep();
- } catch (CoreException e) {
- e.printStackTrace();// PDEPlugin.logException(e);
- }
- }
-
- /**
- * @param project
- * @param className
- * @return true if the class exists in project
- */
- static boolean doesClassExist(IProject project, String className) {
- String path = className.replace('.', '/') + ".java"; //$NON-NLS-1$
- try {
- if (project.hasNature(JavaCore.NATURE_ID)) {
- IJavaProject javaProject = JavaCore.create(project);
-
- IJavaElement result = javaProject.findElement(new Path(path));
- return result != null;
- }
- IResource resource = project.findMember(new Path(path));
- return resource != null;
- } catch (JavaModelException e) {
- return false;
- } catch (CoreException e) {
- return false;
- }
- }
-
- /**
- * @param shell
- * @param searchScope
- * @param typeFlag
- * @return the selection dialog
- */
- static SelectionDialog openSelectionDialog(Shell shell,
- IJavaSearchScope searchScope, int typeFlag) {
- try {
- return JavaUI.createTypeDialog(shell, new ProgressMonitorDialog(
- shell), searchScope, typeFlag, false);
- } catch (JavaModelException e) {
- JSFUICommonPlugin.getLogger(JavaUIHelper.class).error(e);
- return null;
- }
- }
-
- /**
- * @param shell
- * @param project
- * @param superType
- * @param typeFlag
- * @return the selection dialog
- */
- public static SelectionDialog openSelectionDialog(Shell shell,
- IProject project, String superType, int typeFlag) {
- IJavaSearchScope searchScope = findSearchScope(project, superType);
- return openSelectionDialog(shell, searchScope, typeFlag);
- }
-
- /**
- * @param project
- * @param superType
- * @return the search scope
- */
- static IJavaSearchScope findSearchScope(IProject project,
- String superType) {
- if (project != null) {
- if (superType == null || "".equals(superType)) { //$NON-NLS-1$
- superType = "java.lang.Object";//$NON-NLS-1$
- }
- return new JavaSearchScope(project, superType);
- }
- return SearchEngine.createWorkspaceScope();
- }
-
- private JavaUIHelper()
- {
- // static helper, no instantiation
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/LayoutUtil.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/LayoutUtil.java
deleted file mode 100644
index 2457cd153..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/LayoutUtil.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * A layout utility class
- *
- */
-public final class LayoutUtil {
- // The Text control looks higher then Button control when they have the same
- // height,
- // Increasing the height of 5 pixels will make them looks the same height.
- private final static int BUTTON_HEIGHT_ADJUSTMENT = 5;
-
-
- /**
- * @param control
- * @param grab
- */
- public static void setGrabHorizontal(Control control, boolean grab) {
- Object ld = control.getLayoutData();
- if (ld instanceof GridData) {
- ((GridData) ld).grabExcessHorizontalSpace = grab;
- }
- }
-
- /**
- * Sets the width hint of a control. Assumes that GridData is used.
- * @param control
- * @param widthHint
- */
- public static void setWidthHint(Control control, int widthHint) {
- Object ld = control.getLayoutData();
- if (ld instanceof GridData) {
- ((GridData) ld).widthHint = widthHint;
- }
- }
-
-
- /**
- * Sets the horizontal indent of a control. Assumes that GridData is used.
- * @param control
- * @param horizontalIndent
- */
- static void setHorizontalIndent(Control control, int horizontalIndent) {
- Object ld = control.getLayoutData();
- if (ld instanceof GridData) {
- ((GridData) ld).horizontalIndent = horizontalIndent;
- }
- }
-
- /**
- * Sets the horizontal indent of a control. Assumes that GridData is used.
- * @param control
- */
- public static void setHorizontalGrabbing(Control control) {
- Object ld = control.getLayoutData();
- if (ld instanceof GridData) {
- ((GridData) ld).grabExcessHorizontalSpace = true;
- }
- }
-
- /**
- * Returns a width hint for a button control.
- * @param button
- * @return the hint value
- */
- static int getButtonWidthHint(Button button) {
- if (button.getFont().equals(JFaceResources.getDefaultFont()))
- button.setFont(JFaceResources.getDialogFont());
-
- GC gc = new GC(button);
- gc.setFont(button.getFont());
- FontMetrics fontMetrics = gc.getFontMetrics();
- gc.dispose();
-
- int length = button.getText().length();
- int widthHint = Dialog.convertWidthInCharsToPixels(fontMetrics,
- length < 2 ? 2 : length);
- return Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT,
- true).x);
- }
-
- static int getButtonHeightHint(FormToolkit toolkit, Text text) {
- if (toolkit != null) {
- return text.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).y
- + BUTTON_HEIGHT_ADJUSTMENT;
- }
- return text.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).y;
- }
-
- private LayoutUtil()
- {
- // static utility class; no instantiation
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/RadiosDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/RadiosDialogField.java
deleted file mode 100644
index 7db537b68..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/RadiosDialogField.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * This will display a labal and a group of radio buttons. The group of radio
- * buttons will be layed out horizontally use a RowLayout, and them as a group
- * will use one cell in the GridLayout.
- *
- * Whenever the radios selection change will fire both dialogFieldChanged() and
- * dialogFieldApplied() event.
- *
- * @author mengbo
- */
-public class RadiosDialogField extends DialogFieldBase {
- final static private String INDEXKEY = "INDEX"; //$NON-NLS-1$
-
- private Composite _group;
-
- private String[] _items;
-
- private Button[] _button;
-
- private int _selectIndex = -1;
-
- private boolean _fireEvent = true;
-
- /**
- * Default constructor
- */
- public RadiosDialogField() {
- super();
- }
-
- /**
- * this method must be called before create control
- *
- * @param items
- */
- public void setItems(String[] items) {
- _items = items;
- _button = new Button[_items.length];
- }
-
- // ------- layout helpers
-
- /*
- * @see DialogField#doFillIntoGrid
- */
- public Control[] doFillIntoGrid(FormToolkit toolkit, Composite parent,
- int nColumns) {
- assertEnoughColumns(nColumns);
-
- Control requiredLabel = getRequiredLabelControl(toolkit, parent);
- requiredLabel.setLayoutData(gridDataForLabel(1));
-
- Control label = getLabelControl(toolkit, parent);
- label.setLayoutData(gridDataForLabel(1));
-
- _group = getGroup(toolkit, parent);
- _group.setLayoutData(gridDataForGroup(nColumns - 2));
-
- return new Control[] { requiredLabel, label, _group };
- }
-
- /*
- * @see DialogField#getNumberOfControls
- */
- public int getNumberOfControls() {
- return 3;
- }
-
- /**
- * @param span
- * @return the grid data
- */
- protected static GridData gridDataForGroup(int span) {
- GridData gd = new GridData();
- gd.horizontalAlignment = GridData.FILL;
- gd.grabExcessHorizontalSpace = false;
- gd.horizontalSpan = span;
- return gd;
- }
-
- // ------- focus methods
-
- /*
- * @see DialogField#setFocus
- */
- public boolean setFocus() {
- if (isOkToUse(_group)) {
- _group.setFocus();
- }
- return true;
- }
-
- // ------- ui creation
-
- /**
- * @param toolkit
- * @param parent
- * @return the group composite
- */
- public Composite getGroup(FormToolkit toolkit, Composite parent) {
- if (_group == null || _group.isDisposed()) {
- assertCompositeNotNull(parent);
- if (toolkit != null) {
- _group = toolkit.createComposite(parent);
- } else {
- _group = new Composite(parent, SWT.NONE);
- }
- RowLayout layout = new RowLayout();
- layout.marginBottom = 0;
- _group.setLayout(layout);
- for (int i = 0; i < _items.length; i++) {
- if (toolkit != null) {
- _button[i] = toolkit.createButton(_group, _items[i],
- SWT.RADIO);
- } else {
- _button[i] = new Button(_group, SWT.RADIO);
- _button[i].setText(_items[i]);
- }
- _button[i].setData(INDEXKEY, new Integer(i));
- _button[i].addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- if (_fireEvent) {
- _selectIndex = ((Integer) e.widget
- .getData(INDEXKEY)).intValue();
- // FIXME: seemed will fire widgetSelected twice, one
- // for the deselect one,
- // one for the newly selected one. Need investigate.
- if (((Button) e.widget).getSelection()) {
- dialogFieldChangedAndApplied();
- }
- }
- }
-
- });
- }
- }
- return _group;
- }
-
- // ------ enable / disable management
-
- /*
- * @see DialogField#updateEnableState
- */
- protected void updateEnableState() {
- super.updateEnableState();
- if (isOkToUse(_group)) {
- _group.setEnabled(isEnabled());
- }
- }
-
- // ------ text access
-
- /**
- * Sets the text. Triggers a dialog-changed event.
- * @param index
- */
- public void setSelectedIndex(int index) {
- _selectIndex = index;
- if (isOkToUse(_group)) {
- if (_selectIndex >= 0 && _selectIndex < _items.length) {
- _button[_selectIndex].setSelection(true);
- } else {
- for (int i = 0; i < _items.length; i++) {
- if (_button[i].getSelection()) {
- _button[i].setSelection(false);
- }
- }
- }
- }
- dialogFieldChangedAndApplied();
- }
-
- /**
- * Sets the text without triggering a dialog-changed event.
- * @param index
- */
- public void setSelectedIndexWithoutUpdate(int index) {
- _selectIndex = index;
- if (isOkToUse(_group)) {
- _fireEvent = false;
- if (_selectIndex >= 0 && _selectIndex < _items.length) {
- _button[_selectIndex].setSelection(true);
- } else {
- for (int i = 0; i < _items.length; i++) {
- if (_button[i].getSelection()) {
- _button[i].setSelection(false);
- }
- }
- }
- _fireEvent = true;
- }
- }
-
- /**
- * @return the index selected
- */
- public int getSelectedIndex() {
- return _selectIndex;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField#handleGrabHorizontal()
- */
- public void handleGrabHorizontal() {
- LayoutUtil.setGrabHorizontal(this._group, true);
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ResourceButtonDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ResourceButtonDialogField.java
deleted file mode 100644
index 8ab30f002..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ResourceButtonDialogField.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.jst.jsf.common.ui.internal.dialogs.CommonResourceDialog;
-import org.eclipse.jst.jsf.common.ui.internal.utils.PathUtil;
-import org.eclipse.jst.jsf.common.ui.internal.utils.WebrootUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * This class provides a common resource choice DialogFiled. You must set a
- * no-null IProject instance to enable it working. You should give it a suffix
- * list if you want to choose files ended with specific file extensions. The
- * selection result will be a relative path based on the _referredFile's value
- * if it is set, or else based on the _project path.
- *
- * The usage: Shell shell = new Shell(); IProject project = getProject();
- * ResourceButtonDialogField localeField = new
- * ResourceButtonDialogField(project);
- * localeField.setResourceDescription("image"); localeField.setSuffixs(new
- * String[]{"bmp","jpg","gif"});
- * localeField.setReferredFile(StructuredModelUtil.getFileFor(_element.getModel()));
- *
- * @author mengbo
- */
-public class ResourceButtonDialogField extends StringButtonDialogField {
- private IProject _project;
-
- private String[] _suffixs;
-
- private String _resourceDescription;
-
- private IFile _referredFile;
-
- private boolean _isWebPath = false;
-
- private IFolder _folder;
-
- private String _separator = ""; //$NON-NLS-1$
-
- /**
- * @param project
- */
- public ResourceButtonDialogField(IProject project) {
- this(null, project);
- setStringButtonAdapter(new IStringButtonAdapter() {
- public void changeControlPressed(DialogField field) {
- String oldValue = getText();
- String newValue = browseButtonPressed();
- if (newValue != null && !newValue.equals(oldValue)) {
- setText(newValue);
- }
- }
- });
- }
-
- /**
- * @param adapter
- * @param project
- */
- public ResourceButtonDialogField(IStringButtonAdapter adapter,
- IProject project) {
- super(adapter);
- this._project = project;
- }
-
- /**
- * @return the string
- */
- protected String browseButtonPressed() {
- Shell shell = getShell();
- CommonResourceDialog dialog = null;
- int style = "".equals(_separator) ? SWT.NONE : SWT.MULTI | SWT.H_SCROLL //$NON-NLS-1$
- | SWT.V_SCROLL;
- if (_folder != null) {
- dialog = new CommonResourceDialog(shell, _folder.getProject(), style);
- } else {
- dialog = new CommonResourceDialog(shell, _project, style);
- }
- dialog.setTitle(JSFUICommonPlugin
- .getResourceString("DialogField.ResourceButton.SelectFile"));//$NON-NLS-1$
- dialog.setSuffixs(_suffixs);
- dialog.setResourceDescription(_resourceDescription);
-
- if (dialog.open() == Window.OK) {
- Object[] result = dialog.getResult();
- StringBuffer buffer = new StringBuffer();
- for (int i = 0; i < result.length; i++) {
- String newValue = null;
- IPath path = ((IFile) result[i]).getLocation();
-
- IPath referredPath = null;
- if (_referredFile != null) {
- referredPath = _referredFile.getLocation();
- } else {
- referredPath = _project.getLocation();
- }
- if (this._isWebPath) {
- IFile selectedFile = ((IFile) result[i]);
- newValue = WebrootUtil.getWebPath(selectedFile
- .getFullPath());
- } else {
- newValue = PathUtil.convertToRelativePath(path.toString(),
- referredPath.toString());
- }
- buffer.append(newValue);
- buffer.append(_separator);
- }
- if (buffer.length() > 0) {
- return buffer.substring(0, buffer.length()
- - _separator.length());
- }
-
- }
- return null;
- }
-
- /**
- * @return Returns the project.
- */
- public IProject getProject() {
- return _project;
- }
-
- /**
- * @param project
- * The project to set.
- */
- public void setProject(IProject project) {
- this._project = project;
- }
-
- /**
- * @return Returns the relative folder.
- */
- public IFolder getFolder() {
- return _folder;
- }
-
- /**
- * @param folder
- * The relative folder to set.
- */
- public void setFolder(IFolder folder) {
- this._folder = folder;
- }
-
- /**
- * @return Returns the referredFile.
- */
- public IFile getReferredFile() {
- return _referredFile;
- }
-
- /**
- * @param referredFile
- * The referredFile to set.
- */
- public void setReferredFile(IFile referredFile) {
- this._referredFile = referredFile;
- }
-
- /**
- * @return Returns the resourceDescription.
- */
- public String getResourceDescription() {
- return _resourceDescription;
- }
-
- /**
- * @param resourceDescription
- * The resourceDescription to set.
- */
- public void setResourceDescription(String resourceDescription) {
- this._resourceDescription = resourceDescription;
- }
-
- /**
- * @return Returns the suffixs.
- */
- public String[] getSuffixs() {
- return _suffixs;
- }
-
- /**
- * @param suffixs
- * The suffixs to set.
- */
- public void setSuffixs(String[] suffixs) {
- this._suffixs = suffixs;
- }
-
- /**
- * set some special path to web path instead of relative path
- *
- * @param isWebPath
- */
- public void setWebPath(boolean isWebPath) {
- this._isWebPath = isWebPath;
- }
-
- /**
- * @return the separator string
- */
- public String getSeparator() {
- return _separator;
- }
-
- /**
- * @param separator
- */
- public void setSeparator(String separator) {
- this._separator = separator;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/Separator.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/Separator.java
deleted file mode 100644
index f54722a77..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/Separator.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * Dialog field describing a separator.
- */
-public class Separator extends DialogFieldBase {
-
- private Label _separator;
-
- private int _style;
-
- /**
- * Default constructor
- */
- public Separator() {
- this(SWT.NONE);
- }
-
- /**
- * @param style
- * of the separator. See <code>Label</code> for possible
- * styles.
- */
- public Separator(int style) {
- _style = style;
- }
-
- // ------- layout helpers
-
- /**
- * Creates the separator and fills it in a MGridLayout.
- * @param toolkit
- * @param parent
- * @param nColumns
- *
- * @param height
- * The heigth of the separator
- * @return the controls or empty array
- */
- public Control[] doFillIntoGrid(FormToolkit toolkit, Composite parent,
- int nColumns, int height) {
- assertEnoughColumns(nColumns);
-
- Control separator = getSeparator(toolkit, parent);
- separator.setLayoutData(gridDataForSeperator(nColumns, height));
-
- return new Control[] { separator };
- }
-
- /*
- * @see DialogField#doFillIntoGrid
- */
- public Control[] doFillIntoGrid(FormToolkit toolkit, Composite parent,
- int nColumns) {
- return doFillIntoGrid(toolkit, parent, nColumns, 4);
- }
-
- /*
- * @see DialogField#getNumberOfControls
- */
- public int getNumberOfControls() {
- return 1;
- }
-
- /**
- * @param span
- * @param height
- * @return the grid data
- */
- protected static GridData gridDataForSeperator(int span, int height) {
- GridData gd = new GridData();
- gd.horizontalAlignment = GridData.FILL;
- gd.verticalAlignment = GridData.BEGINNING;
- gd.heightHint = height;
- gd.horizontalSpan = span;
- return gd;
- }
-
- // ------- ui creation
-
- /**
- * Creates or returns the created separator.
- * @param toolkit
- *
- * @param parent
- * The parent composite or <code>null</code> if the widget has
- * already been created.
- * @return the separator
- */
- private Control getSeparator(FormToolkit toolkit, Composite parent) {
- if (_separator == null || _separator.isDisposed()) {
- assertCompositeNotNull(parent);
- if (toolkit != null) {
- _separator = toolkit.createSeparator(parent, _style);
- } else {
- _separator = new Label(parent, _style);
- }
- }
- return _separator;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField#handleGrabHorizontal()
- */
- public void handleGrabHorizontal() {
- // do nothing.
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/SourceFolderButtonDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/SourceFolderButtonDialogField.java
deleted file mode 100644
index 420a95093..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/SourceFolderButtonDialogField.java
+++ /dev/null
@@ -1,340 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaModel;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.ui.JavaElementComparator;
-import org.eclipse.jdt.ui.JavaElementLabelProvider;
-import org.eclipse.jdt.ui.StandardJavaElementContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.jst.jsf.common.ui.internal.logging.Logger;
-import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
-
-/**
- * This class provides a source folder selection DialogFiled. There are two
- * conditions: 1. If you set the IProject instance, the source folder selection
- * will only be limited in the specified project 2. If you set null, the source
- * folder selection is allowed in all workspaces
- *
- *
- * @author mengbo
- * @version 1.5
- */
-public class SourceFolderButtonDialogField extends StringButtonDialogField {
- /** Create the logger for this class */
- private static Logger _log = JSFUICommonPlugin
- .getLogger(SourceFolderButtonDialogField.class);
-
- /**
- * package fragment root corresponding to the input type (can be null)
- */
- private IPackageFragmentRoot _fCurrRoot;
-
- private IProject _project;
-
- /**
- * @param project
- */
- public SourceFolderButtonDialogField(IProject project) {
- super(null);
-
- _project = project;
-
- setLabelText(DialogFieldResources.getInstance().getString(
- "SourceFolderButtonDialogField.container.label")); //$NON-NLS-1$
-
- setButtonLabel(DialogFieldResources.getInstance().getString(
- "SourceFolderButtonDialogField.container.button")); //$NON-NLS-1$
-
- setStringButtonAdapter(new IStringButtonAdapter() {
- public void changeControlPressed(DialogField field) {
- containerChangeControlPressed(field);
- }
-
- });
- }
-
- /**
- * @return Returns the project.
- */
- public IProject getProject() {
- return _project;
- }
-
- /**
- * @param project
- * The project to set.
- */
- public void setProject(IProject project) {
- this._project = project;
- }
-
- /**
- * @param field
- */
- protected void containerChangeControlPressed(DialogField field) {
- // take the current jproject as init element of the dialog
- IPackageFragmentRoot root = getPackageFragmentRoot();
- root = chooseSourceContainer(root);
- if (root != null) {
- setPackageFragmentRoot(root, true);
- }
- }
-
- /**
- * Sets the current source folder (model and text field) to the given
- * package fragment root.
- *
- * @param root
- * The new root.
- * @param canBeModified
- * if <code>false</code> the source folder field can not be
- * changed by the user. If <code>true</code> the field is
- * editable
- */
- public void setPackageFragmentRoot(IPackageFragmentRoot root,
- boolean canBeModified) {
- _fCurrRoot = root;
- String str = (root == null) ? "" : root.getPath().makeRelative().toString(); //$NON-NLS-1$
- setText(str);
- setEnabled(canBeModified);
- }
-
- /**
- * Returns the <code>IPackageFragmentRoot</code> that corresponds to the
- * current value of the source folder field.
- *
- * @return the IPackageFragmentRoot or <code>null</code> if the current
- * source folder value is not a valid package fragment root
- *
- */
- public IPackageFragmentRoot getPackageFragmentRoot() {
- return _fCurrRoot;
- }
-
- /**
- * Returns the current text of source folder text field.
- *
- * @return the text of the source folder text field
- */
- public String getPackageFragmentRootText() {
- return getText();
- }
-
- /**
- * choose source container dialog
- *
- * @param initElement
- * @return
- */
- private IPackageFragmentRoot chooseSourceContainer(IJavaElement initElement) {
- Class[] acceptedClasses = new Class[] { IPackageFragmentRoot.class,
- IJavaProject.class, };
-
- TypedElementSelectionValidator validator = new TypedElementSelectionValidator(
- acceptedClasses, false) {
- // TODO: never used
-// public boolean isSelectedValid(Object element) {
-// try {
-// if (element instanceof IJavaProject) {
-// IJavaProject jproject = (IJavaProject) element;
-// IPath path = jproject.getProject().getFullPath();
-// return (jproject.findPackageFragmentRoot(path) != null);
-// } else if (element instanceof IPackageFragmentRoot) {
-// return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE);
-// }
-// return true;
-// } catch (JavaModelException e) {
-// _log.error("JavaModelException"); // just log, no ui in
-// // validation
-// }
-// return false;
-// }
- };
-
- acceptedClasses = new Class[] { IJavaModel.class,
- IPackageFragmentRoot.class, IJavaProject.class, };
- ViewerFilter filter = new TypedViewerFilter(acceptedClasses) {
- public boolean select(Viewer viewer, Object parent, Object element) {
- if (element instanceof IPackageFragmentRoot) {
- try {
- return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE);
- } catch (JavaModelException e) {
- _log.error(e); // just log, no ui
- // in validation
- return false;
- }
- }
- return super.select(viewer, parent, element);
- }
- };
-
- StandardJavaElementContentProvider provider = new StandardJavaElementContentProvider();
- ILabelProvider labelProvider = new JavaElementLabelProvider(
- JavaElementLabelProvider.SHOW_DEFAULT);
- ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(
- getShell(), labelProvider, provider);
- dialog.setValidator(validator);
- dialog.setComparator(new JavaElementComparator());
- // HibernateWizardPage.ChooseSourceContainerDialog.Title = Folder
- // Selection
- dialog
- .setTitle(DialogFieldResources
- .getInstance()
- .getString(
- "SourceFolderButtonDialogField.ChooseSourceContainerDialog.Title")); //$NON-NLS-1$
- // HibernateWizardPage.ChooseSourceContainerDialog.Description = Choose
- // a folder:
- dialog
- .setMessage(DialogFieldResources
- .getInstance()
- .getString(
- "SourceFolderButtonDialogField.ChooseSourceContainerDialog.Description")); //$NON-NLS-1$
- dialog.addFilter(filter);
- if (_project != null) {
- dialog.setInput(JavaCore.create(_project));
- } else {
- dialog.setInput(JavaCore.create(ResourcesPlugin.getWorkspace()
- .getRoot()));
- }
- dialog.setInitialSelection(initElement);
-
- if (dialog.open() == Window.OK) {
- Object element = dialog.getFirstResult();
- if (element instanceof IJavaProject) {
- IJavaProject jproject = (IJavaProject) element;
- return jproject.getPackageFragmentRoot(jproject.getProject());
- } else if (element instanceof IPackageFragmentRoot) {
- return (IPackageFragmentRoot) element;
- }
- return null;
- }
- return null;
- }
-
- /**
- * This method updates the model and returns an error status. The underlying
- * model is only valid if the returned status is OK.
- *
- * @return the model's error status
- */
- public IStatus getChangedStatus() {
- StatusInfo status = new StatusInfo();
-
- _fCurrRoot = null;
- String str = getPackageFragmentRootText();
- if (str.length() == 0) {
- // SourceFolderButtonDialogField.error.EnterContainerName = Folder
- // name is empty.
- status.setError(DialogFieldResources.getInstance().getString(
- "SourceFolderButtonDialogField.error.EnterContainerName")); //$NON-NLS-1$
- return status;
- }
- IPath path = new Path(str);
- IResource res = ResourcesPlugin.getWorkspace().getRoot().findMember(
- path);
- if (res != null) {
- int resType = res.getType();
- if (resType == IResource.PROJECT || resType == IResource.FOLDER) {
- IProject proj = res.getProject();
- if (!proj.isOpen()) {
- status
- .setError(DialogFieldResources
- .getInstance()
- .getString(
- "SourceFolderButtonDialogField.error.ProjectClosed", proj.getFullPath().toString())); //$NON-NLS-1$
- return status;
- }
- if (_project != null && proj != _project) {
- // HibernateWizardPage.error.NotSameProject = The project
- // should be \''{0}\''.
- status
- .setError(DialogFieldResources
- .getInstance()
- .getString(
- "SourceFolderButtonDialogField.error.NotSameProject", _project.getName())); //$NON-NLS-1$
- return status;
- }
- IJavaProject jproject = JavaCore.create(proj);
- _fCurrRoot = jproject.getPackageFragmentRoot(res);
- if (res.exists()) {
- try {
- if (!proj.hasNature(JavaCore.NATURE_ID)) {
- if (resType == IResource.PROJECT) {
- status
- .setError(DialogFieldResources
- .getInstance()
- .getString(
- "SourceFolderButtonDialogField.warning.NotAJavaProject", proj.getName())); //$NON-NLS-1$
- } else {
- status
- .setWarning(DialogFieldResources
- .getInstance()
- .getString(
- "SourceFolderButtonDialogField.warning.NotInAJavaProject", proj.getName())); //$NON-NLS-1$
- }
- return status;
- }
- } catch (CoreException e) {
- status
- .setWarning(DialogFieldResources
- .getInstance()
- .getString(
- "SourceFolderButtonDialogField.warning.NotAJavaProject", proj.getName())); //$NON-NLS-1$
- }
- if (!jproject.isOnClasspath(_fCurrRoot)) {
- status
- .setWarning(DialogFieldResources
- .getInstance()
- .getString(
- "SourceFolderButtonDialogField.warning.NotOnClassPath", str)); //$NON-NLS-1$
- }
- if (_fCurrRoot.isArchive()) {
- status
- .setError(DialogFieldResources
- .getInstance()
- .getString(
- "SourceFolderButtonDialogField.error.ContainerIsBinary", str)); //$NON-NLS-1$
- return status;
- }
- }
- return status;
- }
- status.setError(DialogFieldResources.getInstance().getString(
- "SourceFolderButtonDialogField.error.NotAFolder", str)); //$NON-NLS-1$
- return status;
- }
- status
- .setError(DialogFieldResources
- .getInstance()
- .getString(
- "SourceFolderButtonDialogField.error.ContainerDoesNotExist", str)); //$NON-NLS-1$
- return status;
- }
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StatusInfo.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StatusInfo.java
deleted file mode 100644
index 8a8c9b75b..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StatusInfo.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-
-/**
- * A settable IStatus. Can be an error, warning, info or ok. For error, info and
- * warning states, a message describes the problem.
- *
- * TODO: couldn't have sub-classed Status?
- *
- * @author mengbo
- * @version 1.5
- */
-/*package*/ class StatusInfo implements IStatus {
-
- /**
- * a default status info for IStatus.OK
- */
- public static final IStatus OK_STATUS = new StatusInfo();
-
- private String fStatusMessage;
-
- private int fSeverity;
-
- /**
- * Creates a status set to OK (no message)
- */
- public StatusInfo() {
- this(OK, null);
- }
-
- /**
- * Creates a status .
- *
- * @param severity
- * The status severity: ERROR, WARNING, INFO and OK.
- * @param message
- * The message of the status. Applies only for ERROR, WARNING and
- * INFO.
- */
- public StatusInfo(int severity, String message) {
- fStatusMessage = message;
- fSeverity = severity;
- }
-
- /**
- * Returns if the status' severity is OK.
- */
- public boolean isOK() {
- return fSeverity == IStatus.OK;
- }
-
- /**
- * Returns if the status' severity is WARNING.
- * @return true if severity is IStatus.WARNING
- */
- public boolean isWarning() {
- return fSeverity == IStatus.WARNING;
- }
-
- /**
- * Returns if the status' severity is INFO.
- * @return true if severity is INFO
- */
- public boolean isInfo() {
- return fSeverity == IStatus.INFO;
- }
-
- /**
- * Returns if the status' severity is ERROR.
- * @return true if severity is error
- */
- public boolean isError() {
- return fSeverity == IStatus.ERROR;
- }
-
- /**
- * @see IStatus#getMessage
- */
- public String getMessage() {
- return fStatusMessage;
- }
-
- /**
- * Sets the status to ERROR.
- *
- * @param errorMessage
- * The error message (can be empty, but not null)
- */
- public void setError(String errorMessage) {
- Assert.isNotNull(errorMessage);
- fStatusMessage = errorMessage;
- fSeverity = IStatus.ERROR;
- }
-
- /**
- * Sets the status to WARNING.
- *
- * @param warningMessage
- * The warning message (can be empty, but not null)
- */
- public void setWarning(String warningMessage) {
- Assert.isNotNull(warningMessage);
- fStatusMessage = warningMessage;
- fSeverity = IStatus.WARNING;
- }
-
- /**
- * Sets the status to INFO.
- *
- * @param infoMessage
- * The info message (can be empty, but not null)
- */
- public void setInfo(String infoMessage) {
- Assert.isNotNull(infoMessage);
- fStatusMessage = infoMessage;
- fSeverity = IStatus.INFO;
- }
-
- /**
- * Sets the status to OK.
- */
- public void setOK() {
- fStatusMessage = null;
- fSeverity = IStatus.OK;
- }
-
- /*
- * @see IStatus#matches(int)
- */
- public boolean matches(int severityMask) {
- return (fSeverity & severityMask) != 0;
- }
-
- /**
- * Returns always <code>false</code>.
- *
- * @see IStatus#isMultiStatus()
- */
- public boolean isMultiStatus() {
- return false;
- }
-
- /*
- * @see IStatus#getSeverity()
- */
- public int getSeverity() {
- return fSeverity;
- }
-
- /*
- * @see IStatus#getPlugin()
- */
- public String getPlugin() {
- return JSFUICommonPlugin.getPluginId();
- }
-
- /**
- * Returns always <code>null</code>.
- *
- * @see IStatus#getException()
- */
- public Throwable getException() {
- return null;
- }
-
- /**
- * Returns always the error severity.
- *
- * @see IStatus#getCode()
- */
- public int getCode() {
- return fSeverity;
- }
-
- /**
- * Returns always <code>null</code>.
- *
- * @see IStatus#getChildren()
- */
- public IStatus[] getChildren() {
- return new IStatus[0];
- }
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StatusUtil.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StatusUtil.java
deleted file mode 100644
index 22fe6d866..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StatusUtil.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.DialogPage;
-
-/**
- * copied from org.eclipse.jdt.internal.dialogs. Enhanced to support null status
- * as parameter
- *
- * A utility class to work with IStatus.
- */
-public class StatusUtil {
-
- /**
- * Compares two instances of <code>IStatus</code>. The more severe is
- * returned: An error is more severe than a warning, and a warning is more
- * severe than ok. If the two stati have the same severity, the second is
- * returned.
- * @param s1
- * @param s2
- *
- * @return Could be null.
- */
- public static IStatus getMoreSevere(IStatus s1, IStatus s2) {
- if (s1 == null && s2 == null) {
- return null;
- } else if (s1 == null) {
- return s2;
- } else if (s2 == null) {
- return s1;
- } else if (s1.getSeverity() > s2.getSeverity()) {
- return s1;
- } else {
- return s2;
- }
- }
-
- /**
- * Finds the most severe status from a array of stati. An error is more
- * severe than a warning, and a warning is more severe than ok.
- * @param status
- *
- * @return could be null
- */
- public static IStatus getMostSevere(IStatus[] status) {
- if (status == null)
- return null;
- IStatus max = null;
- for (int i = 0; i < status.length; i++) {
- IStatus curr = status[i];
- if (curr == null)
- continue;
-
- if (curr.matches(IStatus.ERROR)) {
- return curr;
- }
- if (max == null || curr.getSeverity() > max.getSeverity()) {
- max = curr;
- }
- }
- if (max != null)
- {
- return max;
- }
-
- return null;
- }
-
- /**
- * Applies the status to the status line of a dialog page.
- * @param page
- * @param status
- */
- public static void applyToStatusLine(DialogPage page, IStatus status) {
- if (status == null) {
- page.setMessage(null);
- page.setErrorMessage(null);
- } else {
- String message = status.getMessage();
- switch (status.getSeverity()) {
- case IStatus.OK:
- page.setMessage(message, DialogPage.NONE);
- page.setErrorMessage(null);
- break;
- case IStatus.WARNING:
- page.setMessage(message, DialogPage.WARNING);
- page.setErrorMessage(null);
- break;
- case IStatus.INFO:
- page.setMessage(message, DialogPage.INFORMATION);
- page.setErrorMessage(null);
- break;
- default:
- if (message.length() == 0) {
- message = null;
- }
- page.setMessage(null);
- page.setErrorMessage(message);
- break;
- }
- }
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StringButtonDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StringButtonDialogField.java
deleted file mode 100644
index eebc9e5c4..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StringButtonDialogField.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * Dialog field containing a label, text control and a button control.
- */
-public class StringButtonDialogField extends StringDialogField {
- private Button _browseButton;
-
- private String _browseButtonLabel;
-
- private IStringButtonAdapter _stringButtonAdapter;
-
- private boolean _buttonEnabled;
-
- /**
- * @param adapter
- */
- public StringButtonDialogField(IStringButtonAdapter adapter) {
- _stringButtonAdapter = adapter;
- _browseButtonLabel = JSFUICommonPlugin
- .getResourceString("DialogField.Browse"); //$NON-NLS-1$
- _buttonEnabled = true;
- }
-
- /**
- * Sets the label of the button.
- * @param label
- */
- public void setButtonLabel(String label) {
- _browseButtonLabel = label;
- }
-
- // ------ adapter communication
-
- /**
- * Programmatical pressing of the button
- */
- public void changeControlPressed() {
- _stringButtonAdapter.changeControlPressed(this);
- }
-
- // ------- layout helpers
-
- /*
- * @see DialogField#doFillIntoGrid
- */
- public Control[] doFillIntoGrid(FormToolkit toolkit, Composite parent,
- int nColumns) {
- assertEnoughColumns(nColumns);
-
- Control requiredLabel = getRequiredLabelControl(toolkit, parent);
- requiredLabel.setLayoutData(gridDataForLabel(1));
-
- Control label = getLabelControl(toolkit, parent);
- label.setLayoutData(gridDataForLabel(1));
-
- Text text = getTextControl(toolkit, parent);
- text.setLayoutData(gridDataForText(nColumns - 3));
- Button button = getChangeControl(toolkit, parent);
- button.setLayoutData(gridDataForButton(toolkit, button, text, 1));
-
- return new Control[] { requiredLabel, label, text, button };
- }
-
- /*
- * @see DialogField#getNumberOfControls
- */
- public int getNumberOfControls() {
- return 4;
- }
-
- /**
- * @param toolkit
- * @param button
- * @param text
- * @param span
- * @return the grid data for the button
- */
- protected static GridData gridDataForButton(FormToolkit toolkit,
- Button button, Text text, int span) {
- GridData gd = new GridData();
- gd.horizontalAlignment = GridData.FILL;
- gd.grabExcessHorizontalSpace = false;
- gd.horizontalSpan = span;
- // gd.heightHint = SWTUtil.getButtonHeightHint(button);
- gd.widthHint = LayoutUtil.getButtonWidthHint(button);
- gd.heightHint = LayoutUtil.getButtonHeightHint(toolkit, text);
- return gd;
- }
-
- // ------- ui creation
-
- /**
- * Creates or returns the created buttom widget.
- * @param toolkit
- *
- * @param parent
- * The parent composite or <code>null</code> if the widget has
- * already been created.
- * @return the button
- */
- public Button getChangeControl(FormToolkit toolkit, Composite parent) {
- if (_browseButton == null || _browseButton.isDisposed()) {
- assertCompositeNotNull(parent);
- if (toolkit != null) {
- _browseButton = toolkit.createButton(parent,
- _browseButtonLabel, SWT.PUSH);
- } else {
- _browseButton = new Button(parent, SWT.PUSH);
- _browseButton.setText(_browseButtonLabel);
- }
- _browseButton.setEnabled(isEnabled() && _buttonEnabled);
- _browseButton.addSelectionListener(new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent e) {
- changeControlPressed();
- }
-
- public void widgetSelected(SelectionEvent e) {
- changeControlPressed();
- }
- });
-
- }
- return _browseButton;
- }
-
- // ------ enable / disable management
-
- /**
- * Sets the enable state of the button.
- * @param enable
- */
- public void enableButton(boolean enable) {
- if (isOkToUse(_browseButton)) {
- _browseButton.setEnabled(isEnabled() && enable);
- }
- _buttonEnabled = enable;
- }
-
- /*
- * @see DialogField#updateEnableState
- */
- protected void updateEnableState() {
- super.updateEnableState();
- if (isOkToUse(_browseButton)) {
- _browseButton.setEnabled(isEnabled() && _buttonEnabled);
- }
- }
-
- /**
- * @return Returns the _stringButtonAdapter.
- */
- public IStringButtonAdapter getStringButtonAdapter() {
- return _stringButtonAdapter;
- }
-
- /**
- * @param buttonAdapter
- * The _stringButtonAdapter to set.
- */
- public void setStringButtonAdapter(IStringButtonAdapter buttonAdapter) {
- _stringButtonAdapter = buttonAdapter;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StringDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StringDialogField.java
deleted file mode 100644
index bf334a54c..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StringDialogField.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * Dialog field containing a label and a text control.
- */
-public class StringDialogField extends DialogFieldBase implements
- ISupportTextValue {
- final static private int TEXT_WIDTH_HINT = 10;
-
- private String _text;
-
- private Text _textControl;
-
- private ModifyListener _modifyListener;
-
- private int _numRows;
-
- /**
- * whether there is change in the UI but not fire applied event yet.
- */
- private boolean _pending = false;
-
- /**
- * default constructor
- * numRows == 1
- */
- public StringDialogField() {
- this(1);
- _text = ""; //$NON-NLS-1$
- }
-
- /**
- * @param numRows
- */
- public StringDialogField(int numRows) {
- super();
- _text = ""; //$NON-NLS-1$
- _numRows = numRows;
- }
-
- // ------- layout helpers
-
- /*
- * @see DialogField#doFillIntoGrid
- */
- public Control[] doFillIntoGrid(FormToolkit kit, Composite parent,
- int nColumns) {
- assertEnoughColumns(nColumns);
-
- Control requiredLabel = getRequiredLabelControl(kit, parent);
- requiredLabel.setLayoutData(gridDataForLabel(1));
-
- Control label = getLabelControl(kit, parent);
- label.setLayoutData(gridDataForLabel(1));
-
- Text text = getTextControl(kit, parent);
- int heightHint = -1;
- if (_numRows > 1) {
- heightHint = getDialogUnits(parent).getHeight() * _numRows;
- }
- text.setLayoutData(gridDataForText(nColumns - 2, heightHint));
-
- return new Control[] { requiredLabel, label, text };
- }
-
- /*
- * @see DialogField#getNumberOfControls
- */
- public int getNumberOfControls() {
- return 3;
- }
-
- protected static GridData gridDataForLabel(int span) {
- GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- gd.horizontalSpan = span;
- return gd;
- }
-
- /**
- * @param span
- * @param heightHint
- * @return the grid data for text
- */
- protected static GridData gridDataForText(int span, int heightHint) {
- GridData gd = new GridData();
- gd.horizontalAlignment = GridData.FILL;
- gd.grabExcessHorizontalSpace = false;
- gd.heightHint = heightHint;
- gd.horizontalSpan = span;
- gd.widthHint = TEXT_WIDTH_HINT;
- return gd;
- }
-
- /**
- * @param span
- * @return the grid data for text
- */
- protected static GridData gridDataForText(int span) {
- GridData gd = gridDataForText(span, -1);
- return gd;
- }
-
- // ------- focus methods
-
- /*
- * @see DialogField#setFocus
- */
- public boolean setFocus() {
- if (isOkToUse(_textControl)) {
- _textControl.setFocus();
- _textControl.setSelection(0, _textControl.getText().length());
- }
- return true;
- }
-
- // ------- ui creation
-
- /**
- * Creates or returns the created text control.
- * @param toolkit
- *
- * @param parent
- * The parent composite or <code>null</code> when the widget
- * has already been created.
- * @return the text control
- */
- public Text getTextControl(FormToolkit toolkit, Composite parent) {
- if (_textControl == null || _textControl.isDisposed()) {
- assertCompositeNotNull(parent);
- _modifyListener = new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- doModifyText(e);
- }
- };
-
- if (toolkit != null) {
- if (_numRows <= 1) {
- _textControl = toolkit.createText(parent, ""); //$NON-NLS-1$
- } else {
- _textControl = toolkit.createText(parent, "", SWT.V_SCROLL); //$NON-NLS-1$
- }
- } else {
- if (_numRows <= 1) {
-
- _textControl = new Text(parent, SWT.SINGLE | SWT.BORDER);
- } else {
- _textControl = new Text(parent, SWT.V_SCROLL | SWT.WRAP
- | SWT.BORDER);
- }
- }
-
- _textControl.setText(_text);
- _textControl.setFont(parent.getFont());
- _textControl.addModifyListener(_modifyListener);
- _textControl.addFocusListener(new FocusAdapter() {
-
- public void focusLost(FocusEvent e) {
- doFocusLost(e);
- }
-
- });
- _textControl.addKeyListener(new KeyAdapter() {
- public void keyReleased(KeyEvent e) {
- doKeyReleased(e);
- }
- });
-
- _textControl.setEnabled(isEnabled());
-
- _textControl.setToolTipText(getToolTip());
- }
- return _textControl;
- }
-
- /**
- * @param e
- */
- protected void doKeyReleased(KeyEvent e) {
- if (e.character == '\r') {
- // commit value
- if (_pending) {
- _pending = false;
- dialogFieldApplied();
- }
- }
- }
-
- /**
- * @param e
- */
- protected void doFocusLost(FocusEvent e) {
- if (_pending) {
- _pending = false;
- dialogFieldApplied();
- }
- }
-
- /**
- * some get changed in the Text. As in <code>setText</code> and
- * <code>setTextWithoutUpdate</code> we removed the listener, so this must
- * be user typing in the text field.
- *
- * @param e
- */
- private void doModifyText(ModifyEvent e) {
- if (isOkToUse(_textControl)) {
- _text = _textControl.getText();
- }
- _pending = true;
- dialogFieldChanged();
- }
-
- // ------ enable / disable management
-
- /*
- * @see DialogField#updateEnableState
- */
- protected void updateEnableState() {
- super.updateEnableState();
- if (isOkToUse(_textControl)) {
- _textControl.setEnabled(isEnabled());
- }
- }
-
- // ------ text access
-
- /**
- * Gets the text. Can not be <code>null</code>
- */
- public String getText() {
- return _text;
- }
-
- /**
- * Sets the text. Triggers a dialog-changed event.
- */
- public void setText(String text) {
- setTextWithoutUpdate(text);
- dialogFieldChangedAndApplied();
- }
-
- /**
- * Sets the text without triggering a dialog-changed event.
- */
- public void setTextWithoutUpdate(String text) {
- // reset _pending state.
- _pending = false;
-
- if (text == null)
- text = ""; //$NON-NLS-1$
- _text = text;
- if (isOkToUse(_textControl)) {
- _textControl.removeModifyListener(_modifyListener);
- _textControl.setText(text);
- _textControl.addModifyListener(_modifyListener);
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField#handleGrabHorizontal()
- */
- public void handleGrabHorizontal() {
- LayoutUtil.setGrabHorizontal(_textControl, true);
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java
deleted file mode 100644
index 93c93320b..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java
+++ /dev/null
@@ -1,398 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import java.util.Map;
-import java.util.TreeMap;
-import java.util.Map.Entry;
-
-import org.eclipse.jst.jsf.common.ui.internal.utils.StyleCombo;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * A dialog field for style combos
- *
- */
-public class StyleComboDialogField extends DialogFieldBase implements
- ISupportTextValue {
- final static private int WIDTH_HINT = 10;
-
- private String _text;
-
- private int _selectionIndex;
-
- private String[] _items;
-
- private StyleCombo _comboControl;
-
- private ModifyListener _modifyListener;
-
- private int _flags;
-
- private boolean _pending = false;
-
- private Map _entryMap;
-
- private String _defaultValue;
-
-
- /**
- * @param defaultValue
- */
- public void setDefaultValue(String defaultValue) {
- this._defaultValue = defaultValue;
- if (_comboControl != null && ! _comboControl.isDisposed())
- _comboControl.setDefaultValue(_defaultValue);
- }
-
- /**
- * @param flags
- */
- public StyleComboDialogField(int flags) {
- super();
- _text = ""; //$NON-NLS-1$
- _items = new String[0];
- _flags = flags;
- _selectionIndex = -1;
- }
-
- // ------- layout helpers
-
-
- /*
- * @see DialogField#doFillIntoGrid
- */
- public Control[] doFillIntoGrid(FormToolkit toolkit, Composite parent,
- int nColumns) {
- assertEnoughColumns(nColumns);
-
- Control requiredLabel = getRequiredLabelControl(toolkit, parent);
- requiredLabel.setLayoutData(gridDataForLabel(1));
-
- Control label = getLabelControl(toolkit, parent);
- label.setLayoutData(gridDataForLabel(1));
-
- StyleCombo combo = getComboControl(toolkit, parent);
- combo.setLayoutData(gridDataForCombo(nColumns - 2));
-
- return new Control[] { requiredLabel, label, combo };
- }
-
- /*
- * @see DialogField#getNumberOfControls
- */
- public int getNumberOfControls() {
- return 3;
- }
-
- /**
- * @param span
- * @return the grid data for the combo
- */
- protected static GridData gridDataForCombo(int span) {
- GridData gd = new GridData();
- gd.horizontalAlignment = GridData.FILL;
- gd.grabExcessHorizontalSpace = false;
- gd.horizontalSpan = span;
- gd.widthHint = WIDTH_HINT;
- return gd;
- }
-
- // ------- focus methods
-
- /*
- * @see DialogField#setFocus
- */
- public boolean setFocus() {
- if (isOkToUse(_comboControl)) {
- _comboControl.setFocus();
- }
- return true;
- }
-
- // ------- ui creation
-
- /**
- * Creates or returns the created combo control.
- * @param toolkit
- *
- * @param parent
- * The parent composite or <code>null</code> when the widget
- * has already been created.
- * @return the combo control
- */
- public StyleCombo getComboControl(FormToolkit toolkit,
- final Composite parent) {
- if (_comboControl == null || _comboControl.isDisposed()) {
- assertCompositeNotNull(parent);
- _modifyListener = new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- doModifyText(e);
- }
- };
- SelectionListener selectionListener = new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- doSelectionChanged(e);
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- handleDefaultSelection(e);
- }
- };
-
- if (toolkit != null) {
- _comboControl = new StyleCombo(parent, _flags);
- final FormColors colors = new FormColors(parent.getDisplay());
- parent.addPaintListener(new PaintListener() {
-
- public void paintControl(PaintEvent event) {
- Composite composite = (Composite) event.widget;
- Control[] children = composite.getChildren();
- for (int i = 0; i < children.length; i++) {
- Control c = children[i];
- if (!(c instanceof StyleCombo) || !c.isVisible()) {
- continue;
- }
- Rectangle b = c.getBounds();
- GC gc = event.gc;
- gc.setForeground(colors.getBorderColor());
- gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1,
- b.height + 1);
- }
- }
- });
-
- // when the parent is disposed, the colors should no
- // no longer be needed.
- parent.addDisposeListener(new DisposeListener()
- {
- public void widgetDisposed(DisposeEvent e) {
- colors.dispose();
- }
- }
- );
- toolkit.adapt(_comboControl);
- } else {
- _comboControl = new StyleCombo(parent, _flags | SWT.BORDER);
- _comboControl.setBackground(Display.getCurrent()
- .getSystemColor(SWT.COLOR_LIST_BACKGROUND));
- }
-
- // moved up due to 1GEUNW2
- _comboControl.setItems(_items);
- _comboControl.setDefaultValue(_defaultValue);
- if (_selectionIndex != -1) {
- _comboControl.select(_selectionIndex);
- } else {
- _comboControl.setText(_text);
- }
- _comboControl.setFont(parent.getFont());
- _comboControl.addModifyListener(_modifyListener);
- _comboControl.addSelectionListener(selectionListener);
- _comboControl.addFocusListener(new FocusAdapter() {
- public void focusLost(FocusEvent e) {
- doFocusLost(e);
- }
- });
- _comboControl.setEnabled(isEnabled());
- _comboControl.setToolTipText(getToolTip());
- }
- return _comboControl;
- }
-
- /**
- * @param e
- */
- protected void handleDefaultSelection(SelectionEvent e) {
- // commit value
- if (_pending) {
- _pending = false;
- dialogFieldApplied();
- }
- }
-
- /**
- * @param e
- */
- protected void doFocusLost(FocusEvent e) {
- if (_pending) {
- _pending = false;
- dialogFieldApplied();
- }
- }
-
- private void doModifyText(ModifyEvent e) {
- if (isOkToUse(_comboControl)) {
- _text = getEntryKey(_comboControl.getText());
- _selectionIndex = _comboControl.getSelectionIndex();
- }
- _pending = true;
- dialogFieldChanged();
- }
-
- private void doSelectionChanged(SelectionEvent e) {
- if (isOkToUse(_comboControl)) {
- _items = _comboControl.getItems();
- _text = getEntryKey(_comboControl.getText());
- _selectionIndex = _comboControl.getSelectionIndex();
- }
- _pending = false;
- dialogFieldChangedAndApplied();
- }
-
- // ------ enable / disable management
-
- /*
- * @see DialogField#updateEnableState
- */
- protected void updateEnableState() {
- super.updateEnableState();
- if (isOkToUse(_comboControl)) {
- _comboControl.setEnabled(isEnabled());
- }
- }
-
- // ------ text access
-
- /**
- * Sets the combo items. Triggers a dialog-changed event.
- * @param items
- */
- public void setItems(String[] items) {
- _items = items;
- if (isOkToUse(_comboControl)) {
- _comboControl.setItems(items);
- }
- _pending = false;
- // dialogFieldChangedAndApplied();
- }
-
- /**
- * @param map
- */
- public void setEntryMap(Map map) {
- this._entryMap = map;
- if (_entryMap == null) {
- _entryMap = new TreeMap();
- }
- Entry[] entries = (Entry[]) _entryMap.entrySet().toArray(new Entry[0]);
- String[] items = new String[entries.length];
- for (int i = 0; i < entries.length; i++) {
- items[i] = entries[i].getValue().toString();
- }
- setItems(items);
- }
-
- /**
- * Gets the text.
- */
- public String getText() {
- return _text;
- }
-
- /**
- * Sets the text. Triggers a dialog-changed event.
- */
- public void setText(String text) {
- setTextWithoutUpdate(text);
- _pending = false;
- dialogFieldChangedAndApplied();
- }
-
- /**
- * Selects an item.
- * @param index
- */
- public void selectItem(int index) {
- if (isOkToUse(_comboControl)) {
- _comboControl.select(index);
- } else {
- if (index >= 0 && index < _items.length) {
- _text = getEntryKey(_items[index]);
- _selectionIndex = index;
- }
- }
- dialogFieldChangedAndApplied();
- }
-
- /**
- * @return the selection index
- */
- public int getSelectionIndex() {
- return _selectionIndex;
- }
-
- /**
- * Sets the text without triggering a dialog-changed event.
- */
- public void setTextWithoutUpdate(String text) {
- _pending = false;
- if (text == null) {
- text = "";//$NON-NLS-1$
- }
- _text = text;
- if (isOkToUse(_comboControl)) {
- _comboControl.removeModifyListener(_modifyListener);
- _comboControl.setText(getEntryValue(text));
- _comboControl.addModifyListener(_modifyListener);
- }
- }
-
- private String getEntryValue(String key) {
- if (_entryMap == null || !_entryMap.containsKey(key)) {
- return key;
- }
- return _entryMap.get(key).toString();
- }
-
- private String getEntryKey(String value) {
- if (_entryMap == null || !_entryMap.containsValue(value)) {
- return value;
- }
-
- Entry[] entries = (Entry[]) _entryMap.entrySet().toArray(new Entry[0]);
- for (int i = 0; i < entries.length; i++) {
- if (entries[i].getValue() == value
- || (value != null && value.equals(entries[i].getValue()))) {
- return entries[i].getKey().toString();
- }
- }
- return value;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField#handleGrabHorizontal()
- */
- public void handleGrabHorizontal() {
- LayoutUtil.setGrabHorizontal(_comboControl, true);
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/TypedElementSelectionValidator.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/TypedElementSelectionValidator.java
deleted file mode 100644
index 8d0e09101..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/TypedElementSelectionValidator.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-import java.util.Collection;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.ui.dialogs.ISelectionStatusValidator;
-
-/**
- * Implementation of a <code>ISelectionValidator</code> to validate the type
- * of an element. Empty selections are not accepted.
- *
- * @author mengbo
- * @version 1.5
- */
-/*package*/ class TypedElementSelectionValidator implements
- ISelectionStatusValidator {
-
- private IStatus _fgErrorStatus = new StatusInfo(IStatus.ERROR, ""); //$NON-NLS-1$
-
- private IStatus _fgOKStatus = new StatusInfo();
-
- private Class[] _fAcceptedTypes;
-
- private boolean _fAllowMultipleSelection;
-
- private Collection _fRejectedElements;
-
- /**
- * @param acceptedTypes
- * The types accepted by the validator
- * @param allowMultipleSelection
- * If set to <code>true</code>, the validator allows multiple
- * selection.
- */
- public TypedElementSelectionValidator(Class[] acceptedTypes,
- boolean allowMultipleSelection) {
- this(acceptedTypes, allowMultipleSelection, null);
- }
-
- /**
- * @param acceptedTypes
- * The types accepted by the validator
- * @param allowMultipleSelection
- * If set to <code>true</code>, the validator allows multiple
- * selection.
- * @param rejectedElements
- * A list of elements that are not accepted
- */
- public TypedElementSelectionValidator(Class[] acceptedTypes,
- boolean allowMultipleSelection, Collection rejectedElements) {
- Assert.isNotNull(acceptedTypes);
- _fAcceptedTypes = acceptedTypes;
- _fAllowMultipleSelection = allowMultipleSelection;
- _fRejectedElements = rejectedElements;
- }
-
- /*
- * @see org.eclipse.ui.dialogs.ISelectionValidator#isValid(java.lang.Object)
- */
- public IStatus validate(Object[] elements) {
- if (isValid(elements)) {
- return _fgOKStatus;
- }
- return _fgErrorStatus;
- }
-
- private boolean isOfAcceptedType(Object o) {
- for (int i = 0; i < _fAcceptedTypes.length; i++) {
- if (_fAcceptedTypes[i].isInstance(o)) {
- return true;
- }
- }
- return false;
- }
-
- private boolean isRejectedElement(Object elem) {
- return (_fRejectedElements != null)
- && _fRejectedElements.contains(elem);
- }
-
- private boolean isValid(Object[] selection) {
- if (selection.length == 0) {
- return false;
- }
-
- if (!_fAllowMultipleSelection && selection.length != 1) {
- return false;
- }
-
- for (int i = 0; i < selection.length; i++) {
- Object o = selection[i];
- if (!isOfAcceptedType(o) || isRejectedElement(o)) {
- return false;
- }
- }
- return true;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/TypedViewerFilter.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/TypedViewerFilter.java
deleted file mode 100644
index 52ecb6a2a..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/TypedViewerFilter.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogfield;
-
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-
-/**
- * Viewer filter used in selection dialogs.
- *
- * @author mengbo
- * @version 1.5
- */
-/*package*/ class TypedViewerFilter extends ViewerFilter {
-
- private Class[] _fAcceptedTypes;
-
- private Object[] _fRejectedElements;
-
- /**
- * Creates a filter that only allows elements of gives types.
- *
- * @param acceptedTypes
- * The types of accepted elements
- */
- public TypedViewerFilter(Class[] acceptedTypes) {
- this(acceptedTypes, null);
- }
-
- /**
- * Creates a filter that only allows elements of gives types, but not from a
- * list of rejected elements.
- *
- * @param acceptedTypes
- * Accepted elements must be of this types
- * @param rejectedElements
- * Element equals to the rejected elements are filtered out
- */
- public TypedViewerFilter(Class[] acceptedTypes, Object[] rejectedElements) {
- Assert.isNotNull(acceptedTypes);
- _fAcceptedTypes = acceptedTypes;
- _fRejectedElements = rejectedElements;
- }
-
- /**
- * @see ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
- * java.lang.Object, java.lang.Object)
- */
- public boolean select(Viewer viewer, Object parentElement, Object element) {
- if (_fRejectedElements != null) {
- for (int i = 0; i < _fRejectedElements.length; i++) {
- if (element.equals(_fRejectedElements[i])) {
- return false;
- }
- }
- }
- for (int i = 0; i < _fAcceptedTypes.length; i++) {
- if (_fAcceptedTypes[i].isInstance(element)) {
- return true;
- }
- }
- return false;
- }
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogs/CommonResourceDialog.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogs/CommonResourceDialog.java
deleted file mode 100644
index debc2f996..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogs/CommonResourceDialog.java
+++ /dev/null
@@ -1,368 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogs;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.jst.jsf.common.ui.internal.logging.Logger;
-import org.eclipse.jst.jsf.common.ui.internal.utils.WebrootUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.views.navigator.ResourceComparator;
-
-/**
- * This dialog shows IFile type resources within a IProject domain for
- * selection. The client can prvide the suffixs of files to filter when
- * candidates are shown on the tree.
- *
- * The usage: Shell shell = new Shell(); IProject project = getProject();
- * CommonResourceDialog dlg = new CommonResourceDialog(shell, project);
- * dlg.setResourceDescription("image"); dlg.setSuffixs(new
- * String[]{"bmp","jpg","gif"}); if(dlg.open() == Window.OK) { IFile
- * selectedFile = (IFile)dlg.getResult()[0]; }
- *
- * Note: In code above, what you get is an absolute resource path. You can use
- * <code>org.eclipse.wst.sse.core.util.PathHelper.convertToRelative(String input, String base)</code>
- * to convert a absolute resource path to a relative path based on one path.
- *
- * @author mengbo
- */
-public class CommonResourceDialog extends TreeViewerSelectionDialog {
- private static Logger _log = JSFUICommonPlugin
- .getLogger(CommonResourceDialog.class);
-
- // private static final String STATUS_MESSAGE_0 = CommonPlugin
- // .getResourceString("Dialog.CommonResourceDialog.StatusMessage0");
- // //$NON-NLS-1$
-
- private IProject _project = null;
-
- private String _suffixs[] = null;
-
- private CommonResourceFilter _filter = null;
-
- // The resource type resourceDescription, such as "image", "jsp", "java
- // class" etc.
- private String _resourceDescription = null;
-
- private IFolder _folder;
-
- // The content provider
- class ProjectFileDialogContentProvider implements ITreeContentProvider {
- /**
- * The visual part that is using this content provider is about to be
- * disposed. Deallocate all allocated SWT resources.
- */
- public void dispose() {
- // nothing to dispose
- }
-
- /**
- * @see ITreeContentProvider#getChildren
- */
- public Object[] getChildren(Object element) {
- if (element instanceof Object[]) {
- return (Object[]) element;
- } else if (element instanceof IContainer) {
- IContainer container = (IContainer) element;
- if (container.isAccessible()) {
- try {
- return container.members();
- } catch (CoreException e) {
- _log.error(
- "Error.ProjectFileDialogContentProvider.0", e); //$NON-NLS-1$
- }
- }
-
- }
- return new Object[0];
- }
-
- /**
- * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(Object)
- */
- public Object[] getElements(Object element) {
- return getChildren(element);
- }
-
- /**
- * @see ITreeContentProvider#getParent
- */
- public Object getParent(Object element) {
- if (element instanceof IResource) {
- return ((IResource) element).getParent();
- }
- return null;
- }
-
- /**
- * @see ITreeContentProvider#hasChildren
- */
- public boolean hasChildren(Object element) {
- return getChildren(element).length > 0;
- }
-
- /**
- * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(Viewer, Object, Object)
- */
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- // no viewer change support required
- }
-
- }
-
- // The default resource filter
- class CommonResourceFilter extends ViewerFilter {
- private String _filterSuffixs[] = null;
-
- /**
- * @return Returns the _suffixs.
- */
- public String[] getSuffixs() {
- return _filterSuffixs;
- }
-
- /**
- * @param _suffixs
- * The _suffixs to set.
- */
- public void setSuffixs(String[] _suffixs) {
- this._filterSuffixs = _suffixs;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
- * java.lang.Object, java.lang.Object)
- */
- public boolean select(Viewer viewer, Object parentElement,
- Object element) {
- if (element instanceof IFile) {
- IFile file = (IFile) element;
- if (!WebrootUtil.isUnderWebContentFolder(file)) {
- return false;
- }
- if (isSuffixBlank()) {
- return true;
- }
- if (file.getFileExtension() != null) {
- if (Arrays.asList(_filterSuffixs).contains(
- file.getFileExtension().toLowerCase())) {
- return true;
- }
- }
- } else if (element instanceof IContainer) {
- if (!((IContainer) element).isAccessible()) {
- return false;
- }
- if (element instanceof IProject) {
- return true;
- } else if (element instanceof IFolder) {
- IContainer container = (IContainer) element;
- try {
- IResource[] members = container.members();
- for (int i = 0; i < members.length; i++) {
- if (select(viewer, members[i].getParent(),
- members[i])) {
- return true;
- }
- }
- } catch (CoreException e) {
- _log.error(
- "Error.ProjectFileDialogContentProvider.0", e); //$NON-NLS-1$
- return false;
- }
- }
- }
- return false;
- }
-
- }
-
- /**
- * This is a dialog for common resource selection, the resouce supported
- * include IFolder, IProject, IFile, user can provide
- *
- * @param parentShell
- * @param project
- * @param style
- */
- public CommonResourceDialog(Shell parentShell, IProject project, int style) {
- super(parentShell, "", style); //$NON-NLS-1$
- if (project == null) {
- throw new IllegalArgumentException(
- "Argument(project) cannot be null"); //$NON-NLS-1$
- }
- _project = project;
- setContentProvider(new ProjectFileDialogContentProvider());
- setLabelProvider(WorkbenchLabelProvider
- .getDecoratingWorkbenchLabelProvider());
- _filter = new CommonResourceFilter();
- setFilter(_filter);
- setViewerComparator(new ResourceComparator(ResourceComparator.TYPE));
- _project = project;
- setStatusMessage(getStatusMessage());
- }
-
- /**
- * Same as CommonResourceDialog(parentShell, project, SWT.NONE)
- *
- * @param parentShell
- * @param project
- */
- public CommonResourceDialog(Shell parentShell, IProject project) {
- this(parentShell, project, SWT.NONE);
- }
-
- private String getStatusMessage() {
- if (_resourceDescription == null) {
- return ""; //$NON-NLS-1$
- }
- return _resourceDescription;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.pagedesigner.ui.common.SelectionTreeViewerDialog#findInputElement()
- */
- protected Object findInputElement() {
- if (_folder != null) {
- return new Object[] { _folder, };
- }
- return new Object[] { _project, };
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.pagedesigner.ui.common.SelectionTreeViewerDialog#isValidSelection(java.lang.Object)
- */
- protected boolean isValidSelection(Object selection) {
- if (selection instanceof Object[]) {
- for (int i = 0, n = ((Object[]) selection).length; i < n; i++) {
- if (isValidElement(((Object[]) selection)[i]) == true) {
- return true;
- }
- }
- return false;
- }
- return isValidElement(selection);
- }
-
- private boolean isValidElement(Object selection) {
- if ((selection instanceof IFile)) {
- // Null means no filter is set
- if (isSuffixBlank()) {
- return true;
- }
- // The extension is supported?
- else if (_suffixs != null
- && Arrays.asList(_suffixs).contains(
- ((IFile) selection).getFileExtension()
- .toLowerCase())) {
- return true;
- }
- }
- // None of above conditions, invalid.
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.dialogs.SelectionDialog#getResult()
- */
- public Object[] getResult() {
- Object[] objects = super.getResult();
- if (objects == null || objects.length == 0) {
- return null;
- }
- List list = new ArrayList();
- for (int i = 0; i < objects.length; i++) {
- if (objects[i] instanceof IFile) {
- list.add(objects[i]);
- }
- }
- return list.toArray();
- }
-
- /**
- * @param suffixs
- * The suffixs to set.
- */
- public void setSuffixs(String[] suffixs) {
- this._suffixs = convertTolowercase(suffixs);
- _filter.setSuffixs(_suffixs);
- setStatusMessage(getStatusMessage());
- }
-
- private String[] convertTolowercase(String[] suffixs) {
- if (suffixs != null) {
- String[] newSuffixs = new String[suffixs.length];
- for (int i = 0; i < suffixs.length; i++) {
- newSuffixs[i] = suffixs[i].toLowerCase();
- }
- return newSuffixs;
- }
- return null;
- }
-
- /**
- * @return Returns the sourceDescription.
- */
- public String getResourceDescription() {
- return _resourceDescription;
- }
-
- /**
- * @param sourceDescription
- * The sourceDescription to set.
- */
- public void setResourceDescription(String sourceDescription) {
- this._resourceDescription = sourceDescription;
- setStatusMessage(getStatusMessage());
- }
-
- private boolean isSuffixBlank() {
- boolean isSuffixBlank = false;
- if (_suffixs == null) {
- isSuffixBlank = true;
- } else {
- int count = 0;
- for (int i = 0, size = _suffixs.length; i < size; i++) {
- if (_suffixs[i] != null && !"".equals(_suffixs[i])) { //$NON-NLS-1$
- count++;
- break;
- }
- }
- if (count == 0) {
- isSuffixBlank = true;
- }
- }
- return isSuffixBlank;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogs/CommonWizardDialog.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogs/CommonWizardDialog.java
deleted file mode 100644
index 3fd719c77..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogs/CommonWizardDialog.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogs;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Wizard Dialog with a Finish set to OK if no previous
- * or next buttons are needed
- *
- */
-public class CommonWizardDialog extends WizardDialog {
-
- /**
- * @param parentShell
- * @param newWizard
- */
- public CommonWizardDialog(Shell parentShell, IWizard newWizard) {
- super(parentShell, newWizard);
- }
-
- protected void createButtonsForButtonBar(Composite parent) {
- super.createButtonsForButtonBar(parent);
-
- IWizard wizard = getWizard();
- if (!wizard.needsPreviousAndNextButtons()) {
- getButton(IDialogConstants.FINISH_ID).setText(
- IDialogConstants.OK_LABEL);
- }
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogs/ResourceOnClasspathDialog.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogs/ResourceOnClasspathDialog.java
deleted file mode 100644
index 934957d96..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogs/ResourceOnClasspathDialog.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogs;
-
-import java.io.File;
-import java.util.Arrays;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.IJarEntryResource;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.ui.JavaElementLabelProvider;
-import org.eclipse.jdt.ui.StandardJavaElementContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jst.jsf.common.ui.IFileFolderConstants;
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.jst.jsf.common.ui.internal.utils.PathUtil;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * This dialog will let client to select resources that located on a
- * IJavaProject classpath, the client can provide a list of files suffixs to
- * filter.
- *
- * @author mengbo
- */
-// TODO: Since many jar files might do nothing to do with client's selection, we
-// may need to provides more filter choice
-// to clients to exclude unnecessary jar files, such as that are located in JDK
-// dir.
-public class ResourceOnClasspathDialog extends TreeViewerSelectionDialog {
- // ResourcesOnClasspathDialog.statusMessage = Please select a property file
- private static final String STATUS_MESSAGE = JSFUICommonPlugin
- .getResourceString("Dialog.ResourceOnClasspathDialog.StatusMessage"); //$NON-NLS-1$
-
- private IJavaProject _javaProject;
-
- // the suffixs of files that can be selected
- private String _suffixs[];
-
- // IJMTConstants.DEFAULT_SUFFIX;
-
- private ResourceOnClasspathFilter _filter;
-
- // Client doesn't need to know it.
- class ResourceOnClasspathFilter extends ViewerFilter {
- StandardJavaElementContentProvider _javaContentProvider;
-
- /**
- * @param contentProvider
- */
- public ResourceOnClasspathFilter(
- StandardJavaElementContentProvider contentProvider) {
- _javaContentProvider = contentProvider;
- }
-
- /**
- * Set the suffixs of files need to be selected.
- *
- * @param suffixs
- */
- public void setSuffixs(String suffixs[]) {
- _suffixs = suffixs;
- }
-
- /**
- * @param contentProvider
- * The _javaContentProvider to set.
- */
- public void setJavaContentProvider(
- StandardJavaElementContentProvider contentProvider) {
- _javaContentProvider = contentProvider;
- }
-
- /**
- * @param project
- * The _javaProject to set.
- */
- public void setJavaProject(IJavaProject project) {
- _javaProject = project;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
- * java.lang.Object, java.lang.Object)
- */
- public boolean select(Viewer viewer, Object parentElement,
- Object element) {
- // TODO: This logic can be improved by add caching mechanism
- if (element instanceof IJavaProject) {
- String currentProjectName = ((IJavaProject) element)
- .getProject().getFullPath().toString().trim();
- String projectName = _javaProject.getProject().getFullPath()
- .toString().trim();
- if (projectName.equalsIgnoreCase(currentProjectName)) {
- return true;
- }
- return false;
- } else if (element instanceof IResource) {
- if (((_javaProject != null) && !_javaProject
- .isOnClasspath((IResource) element))) {
- return false;
- }
- if (element instanceof IFile) {
- if (Arrays.asList(_suffixs).contains(
- ((IFile) element).getFileExtension())) {
- return true;
- }
- }
- return false;
- }
-
- if (element instanceof IJarEntryResource) {
- String ext = ((IJarEntryResource) element).getFullPath()
- .getFileExtension();
- if (ext != null && Arrays.asList(_suffixs).contains(ext)) {
- return true;
- }
- return false;
- }
- if (!(element instanceof IJavaElement)) {
- return false;
- }
- if (((_javaProject != null) && !_javaProject
- .isOnClasspath((IJavaElement) element))) {
- return false;
- }
- IJavaElement javaElement = (IJavaElement) element;
- Object[] children = null;
- switch (javaElement.getElementType()) {
- case IJavaElement.PACKAGE_FRAGMENT_ROOT:
- children = _javaContentProvider.getChildren(javaElement);
- break;
- case IJavaElement.IMPORT_CONTAINER:
- return true;
- case IJavaElement.PACKAGE_FRAGMENT:
- children = _javaContentProvider.getChildren(javaElement);
- break;
- case IJavaElement.CLASS_FILE:
- if (Arrays.asList(_suffixs).contains(
- IFileFolderConstants.EXT_CLASS)) {
- return true;
- }
- return false;
- case IJavaElement.COMPILATION_UNIT:
- String ext = javaElement.getPath().getFileExtension();
- if (ext != null && Arrays.asList(_suffixs).contains(ext)) {
- return true;
- }
- return false;
- default:
- return false;
- }
-
- for (int i = 0; i < children.length; i++) {
- if (select(viewer, javaElement, children[i])) {
- return true;
- }
- }
- // Either the resouce or its children are not for displaying.
- return false;
- }
- }
-
- /**
- * Set the suffixs of files need to be selected.
- *
- * @param suffixs
- */
- public void setSuffixs(String suffixs[]) {
- _suffixs = suffixs;
- _filter.setSuffixs(suffixs);
- }
-
- /**
- * @param parentShell
- * @param project
- */
- public ResourceOnClasspathDialog(Shell parentShell, IJavaProject project) {
- super(parentShell, STATUS_MESSAGE);
- // set provider and filter
- StandardJavaElementContentProvider contentProvider = new StandardJavaElementContentProvider();
- setContentProvider(contentProvider);
- setLabelProvider(new JavaElementLabelProvider());
- _filter = new ResourceOnClasspathFilter(contentProvider);
- setFilter(_filter);
- // store the project
- _javaProject = project;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.dialogs.SelectionDialog#getResult()
- */
- public Object[] getResult() {
- Object[] objects = super.getResult();
- if (objects == null || objects.length == 0) {
- return null;
- }
- IPath path = PathUtil.getPathOnClasspath(_javaProject, objects[0]);
- String result = null;
- if (path.segmentCount() == 0) {
- return new Object[] { "" }; //$NON-NLS-1$
- }
- path = path.removeFileExtension();
- result = path.toOSString();
- result = result.replace(File.separatorChar, '.');
- return new Object[] { result };
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.pagedesigner.ui.common.SelectionTreeViewerDialog#isValidSelection()
- */
- protected boolean isValidSelection(Object selection) {
- String extension = PathUtil.getPathOnClasspath(_javaProject, selection)
- .getFileExtension();
- return (extension != null && Arrays.asList(_suffixs).contains(extension));
- }
-
- protected Object findInputElement() {
- Object input = ResourcesPlugin.getWorkspace();
- if (input instanceof IWorkspace) {
- return JavaCore.create(((IWorkspace) input).getRoot());
- } else if (input instanceof IContainer) {
- IJavaElement element = JavaCore.create((IContainer) input);
- if (element != null && element.exists()) {
- return element;
- }
- return input;
- }
- return JavaCore.create(ResourcesPlugin.getWorkspace().getRoot());
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogs/TreeViewerSelectionDialog.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogs/TreeViewerSelectionDialog.java
deleted file mode 100644
index 3214dbd7e..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogs/TreeViewerSelectionDialog.java
+++ /dev/null
@@ -1,393 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.dialogs;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.ui.part.DrillDownComposite;
-
-/**
- * This is a base dialog that uses TreeViewer to show selections, subclass needs
- * to provide IContentProvider, ILabelProvider and ViewerFilter for the
- * TreeViewer. Subclass needs to implement isValidSelection(), which valids the
- * selection, and findInputElement() which provides the root element of the
- * tree. Besides, subclass might need to implement getResult() to return a
- * customized result.
- *
- * @author mengbo
- *
- */
-public abstract class TreeViewerSelectionDialog extends SelectionDialog {
- private static final String DEFAULT_TITLE = JSFUICommonPlugin
- .getResourceString("Dialog.TreeViewerSelectionDialog.DefaultTitle"); //$NON-NLS-1$
-
- /** Used to tag the image type */
- public static final int STYLE_NONE = 0;
-
- private static final int STYLE_INFORMATION = 1;
-
- private static final int STYLE_ERROR = 2;
-
- private static final int STYLE_WARNING = 3;
-
- /** Sizi of the TreeViewer composite */
- private static final int SIZING_SELECTION_PANE_HEIGHT = 300;
-
- private static final int SIZING_SELECTION_PANE_WIDTH = 320;
-
- private String _title = DEFAULT_TITLE;
-
- // the seleciton on the treeviewer.
- private static Object[] _selection;
-
- // providers
- private ITreeContentProvider _contentProvider;
-
- private ILabelProvider _labelProvider;
-
- private ViewerFilter _filter;
-
- /** The validation image */
- private Label _statusImage;
-
- /** The validation message */
- private Label _statusLabel;
-
- private String _statusMessage;
-
- /** The selection tree */
- private TreeViewer _treeViewer;
-
- private int _style;
-
- private ViewerSorter _viewerSorter = null;
- private ViewerComparator _viewerComparator = null;
- /**
- * @param parentShell
- * @param statusMessage
- * @param style
- */
- public TreeViewerSelectionDialog(Shell parentShell, String statusMessage,
- int style) {
- super(parentShell);
- _statusMessage = statusMessage;
- _style = style;
- setShellStyle(SWT.CLOSE | SWT.TITLE | SWT.BORDER
- | SWT.APPLICATION_MODAL | SWT.RESIZE);
- }
-
- /**
- * Convenience for TreeViewerSelectionDialog(parentShell, statusMessage, SWT.NONE)
- *
- * @param parentShell
- * @param statusMessage
- */
- public TreeViewerSelectionDialog(Shell parentShell, String statusMessage) {
- this(parentShell, statusMessage, SWT.NONE);
- }
-
- public void setTitle(String title) {
- super.setTitle(title);
- _title = title;
- }
-
- /**
- * Returns a new drill down viewer for this dialog.
- * @param parent
- */
- protected void createTreeViewer(Composite parent) {
- // Create drill down
- DrillDownComposite drillDown = new DrillDownComposite(parent,
- SWT.BORDER);
- GridData spec = new GridData(GridData.FILL_BOTH);
- spec.widthHint = SIZING_SELECTION_PANE_WIDTH;
- spec.heightHint = SIZING_SELECTION_PANE_HEIGHT;
- drillDown.setLayoutData(spec);
- _treeViewer = new TreeViewer(drillDown, _style);
- drillDown.setChildTree(_treeViewer);
- }
-
- private void setTreeViewerProviders() {
- _treeViewer.setContentProvider(_contentProvider);
- _treeViewer.setLabelProvider(_labelProvider);
- if (_viewerSorter == null) {
- _viewerSorter = new ViewerSorter();
- }
- _treeViewer.setSorter(_viewerSorter);
-
- // override if not null.. setSorter is discouraged.
- if (_viewerComparator != null)
- {
- _treeViewer.setComparator(_viewerComparator);
- }
- _treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- _selection = getSelectedElements((IStructuredSelection) event
- .getSelection());
- updateStatus();
- }
- });
- _treeViewer.addDoubleClickListener(new IDoubleClickListener() {
- public void doubleClick(DoubleClickEvent event) {
- ISelection selection = event.getSelection();
- if (selection instanceof IStructuredSelection) {
- Object item = ((IStructuredSelection) selection)
- .getFirstElement();
- if (item instanceof IFile) {
- okPressed();
- } else if (_treeViewer.getExpandedState(item)) {
- _treeViewer.collapseToLevel(item, 1);
- } else {
- _treeViewer.expandToLevel(item, 1);
- }
- }
- }
- });
- _treeViewer.setInput(findInputElement());
-
- if (_filter != null) {
- _treeViewer.addFilter(_filter);
- }
- }
-
- /**
- * Creates the contents of the composite.
- * @param parent
- */
- protected void createTreeViewerComposite(Composite parent) {
- Composite treeViewerComposite = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.marginWidth = 0;
- treeViewerComposite.setLayout(layout);
-
- GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
- gridData.horizontalSpan = 2;
- treeViewerComposite.setLayoutData(gridData);
- Label label = new Label(treeViewerComposite, SWT.WRAP);
- label.setText(_title);
- label.setFont(treeViewerComposite.getFont());
- createTreeViewer(treeViewerComposite);
- Dialog.applyDialogFont(treeViewerComposite);
- }
-
- /**
- * Sets the selected existing container.
- * @param selection
- */
- public void setSelectedElement(Object[] selection) {
- // Expand to and select the specified container
- if (selection == null) {
- return;
- }
-
- for (int i = 0; i < selection.length; i++) {
- if (_selection[i] != null) {
- _treeViewer.expandToLevel(_selection[i], 1);
-
- }
- }
- _treeViewer.setSelection(new StructuredSelection(selection), true);
- }
-
- /*
- * (non-Javadoc) Method declared on Dialog.
- */
- protected Control createDialogArea(Composite parent) {
- Composite area = (Composite) super.createDialogArea(parent);
- GridLayout gridLayout = new GridLayout();
- gridLayout.numColumns = 2;
- area.setLayout(gridLayout);
-
- // Container treeviewer composite
- createTreeViewerComposite(area);
-
- _statusImage = createLabel(area);
- _statusImage.setImage(getMessageImage(STYLE_ERROR));
- _statusLabel = createLabel(area);
- // Link to model
- setTreeViewerProviders();
-
- return dialogArea;
- }
-
- private Label createLabel(Composite parent) {
- Label label = new Label(parent, SWT.LEFT);
- GridData data = new GridData();
- data.horizontalSpan = 1;
- data.horizontalAlignment = GridData.FILL;
- label.setLayoutData(data);
- label.setText(_statusMessage == null ? "" : _statusMessage); //$NON-NLS-1$
- return label;
- }
-
- private Object[] getSelectedElements(IStructuredSelection selection) {
- return selection.toArray();
- }
-
- /**
- * @param provider
- * The _contentProvider to set.
- */
- public void setContentProvider(ITreeContentProvider provider) {
- _contentProvider = provider;
- }
-
- /**
- * @param provider
- * The _labelProvider to set.
- */
- public void setLabelProvider(ILabelProvider provider) {
- _labelProvider = provider;
- }
-
- /**
- * @param filter
- * The _filter to set.
- */
- public void setFilter(ViewerFilter filter) {
- this._filter = filter;
- }
-
- /**
- * @param sorter
- * The _viewerSorter to set.
- */
- public void setViewerSorter(ViewerSorter sorter) {
- _viewerSorter = sorter;
- }
-
- /**
- * Set the viewer comparator. If not null, it's set after after the
- * viewer sorter and thus overrides it.
- *
- * @param viewerComparator
- */
- public void setViewerComparator(ViewerComparator viewerComparator)
- {
- _viewerComparator = viewerComparator;
- }
-
- /**
- * @param message
- */
- public void setStatusMessage(String message) {
- _statusMessage = message;
- }
-
- /**
- * Update the status message
- */
- private void updateStatus() {
- Object selection = _selection;
- if (_selection != null && _selection.length == 1) {
- selection = _selection[0];
- }
- if (isValidSelection(selection)) {
- _statusImage.setVisible(false);
- _statusLabel.setText(""); //$NON-NLS-1$
- getOkButton().setEnabled(true);
- } else {
- _statusImage.setVisible(true);
- _statusImage.setImage(getMessageImage(STYLE_ERROR));
- _statusImage.redraw();
- _statusLabel.setText(_statusMessage);
- getOkButton().setEnabled(false);
- }
-
- }
-
- /**
- * Get the different message according the message type.
- * @param imageType
- *
- * @return Image - the message image
- */
- protected Image getMessageImage(int imageType) {
- switch (imageType) {
- case STYLE_ERROR:
- return JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_ERROR);
- case STYLE_WARNING:
- return JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_WARNING);
- case STYLE_INFORMATION:
- return JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_INFO);
- default:
- return null;
- }
- }
-
- /**
- * The <code>ContainerSelectionDialog</code> implementation of this
- * <code>Dialog</code> method builds a list of the selected resource
- * containers for later retrieval by the client and closes this dialog.
- */
- protected void okPressed() {
- List chosenContainerPathList = new ArrayList();
- if (_selection != null) {
- chosenContainerPathList.addAll(Arrays.asList(_selection));
- }
- setResult(chosenContainerPathList);
- super.okPressed();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.window.Window#createContents(org.eclipse.swt.widgets.Composite)
- */
- protected Control createContents(Composite parent) {
- Control control = super.createContents(parent);
- if (_selection != null) {
- this.setSelectedElement(_selection);
- }
- return control;
- }
-
- /**
- * @param selection
- * @return true if selection is valid
- */
- protected abstract boolean isValidSelection(Object selection);
-
- /**
- * Used to set the input element on the tree viewer
- * @return the input element
- */
- protected abstract Object findInputElement();
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/AbstractDetailsForm.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/AbstractDetailsForm.java
deleted file mode 100644
index 887d57f9b..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/AbstractDetailsForm.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 Oracle Corporation 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:
- * Oracle Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.form;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * The parent of all detail forms.
- *
- * @author cbateman
- *
- */
-public abstract class AbstractDetailsForm
-{
- private FormToolkit _toolkit;
-
- /**
- *
- */
- protected AbstractDetailsForm()
- {
- super();
- }
-
- /**
- * Called to refresh model if stale
- */
- public void refresh()
- {
- // do nothing by default
- }
-
- /**
- * Called before createContents.
- *
- * @param toolkit
- */
- public final void initialize(final FormToolkit toolkit)
- {
- _toolkit = toolkit;
- doInitialize();
- }
-
- /**
- * Override to customize initialization. getToolkit() is safe to call
- * from this method. You should not make other state assumptions.
- */
- protected void doInitialize()
- {
- // do nothing by default;
- }
-
- /**
- * Callled by MasterDetailBlock during it's dispose
- */
- public abstract void dispose();
-
- /**
- * @param onSave
- */
- public abstract void commit(boolean onSave);
-
- /**
- * Called on this details form before it is shown, when it becomes active
- * due to a matching selection change in the master form. Implementer
- * should use newSelection as the new instance of their model and
- * reinitialize UI as appropriate.
- * @param newSelection
- */
- protected abstract void doUpdateSelection(final Object newSelection);
-
- /**
- * @return the contents control. Must not be called before createContents.
- */
- public abstract Control getControl();
-
- /**
- * Fired to indicate that this detail form is now selected based on the
- * master form selected.
- *
- * @param selection
- */
- public void selectionChanged(final ISelection selection)
- {
- // by default, get the first element of the selection if there is
- // one and call doUpdateSelection on it. Sub-classes may change
- // this behaviour
- if (selection instanceof IStructuredSelection)
- {
- final Object selectionObj = ((IStructuredSelection) selection)
- .getFirstElement();
- doUpdateSelection(selectionObj);
- }
- }
-
- /**
- * Create the contents of the detail form using 'parent'. Should not be
- * called before initialize.
- *
- * @param parent
- */
- public abstract void createContents(Composite parent);
-
- /**
- * @return the form toolkit in use. Should not be called before
- * initialize.
- */
- protected final FormToolkit getToolkit()
- {
- return _toolkit;
- }
-
- /**
- * @return true if the form is dirty
- */
- public boolean isDirty()
- {
- // never dirty by default
- return false;
- }
-
- /**
- * @return true if form is stale
- */
- public boolean isStale()
- {
- // always stale by default
- return true;
- }
-
- /**
- * Called to set focus on the detail form's control
- */
- public abstract void setFocus();
-} \ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/AbstractMasterDetailBlock.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/AbstractMasterDetailBlock.java
deleted file mode 100644
index 7141dcb88..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/AbstractMasterDetailBlock.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 Oracle Corporation 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:
- * Oracle Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.form;
-
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.custom.StackLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.Form;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * An alternative to MasterDetailBlock that doesn't use the ScrolledForm
- * that causes problems as described here:
- *
- * http://dev.eclipse.org/newslists/news.eclipse.platform/msg73145.html
-
- * @author cbateman
- *
- */
-public abstract class AbstractMasterDetailBlock implements
- ISelectionChangedListener
-{
- private AbstractMasterForm _masterForm;
- private Composite _detailsPanel;
- private AbstractDetailsForm _curPage;
- private FormToolkit _toolkit;
- private StackLayout _detailLayout;
- private List<AbstractDetailsForm> _detailForms;
- private BlankDetailsForm _blankDetails;
-
- /**
- *
- */
- protected AbstractMasterDetailBlock()
- {
- super();
- }
-
- /**
- * Disposes the master detail form
- */
- public final void dispose()
- {
- _masterForm.dispose();
-
- for (final AbstractDetailsForm detailsForm : _detailForms)
- {
- detailsForm.dispose();
- }
-
- doDispose();
- }
-
- /**
- * Override to get custom dispose logic. Do not use this to dispose of
- * master or details forms. This is done automatically for you before
- * doDispose is called.
- */
- protected void doDispose()
- {
- // do nothing by default
- }
-
- /**
- * @param toolkit
- * @param form
- */
- public final void createContent(final FormToolkit toolkit, final Form form)
- {
- _toolkit = toolkit;
-
- final GridLayout layout = new GridLayout();
- layout.marginWidth = 5;
- layout.marginHeight = 5;
- form.getBody().setLayout(layout);
- final SashForm sashForm = new SashForm(form.getBody(), SWT.NULL);
- // sashForm.setData("form", managedForm); //$NON-NLS-1$
- _toolkit.adapt(sashForm, false, false);
- sashForm.setMenu(form.getBody().getMenu());
- sashForm.setLayoutData(new GridData(GridData.FILL_BOTH));
- initializeMasterPart(_toolkit, sashForm);
- createDetailsPart(sashForm);
-
- _masterForm.createHead(form);
- createToolBarActions(form);
- form.updateToolBar();
- }
-
- /**
- * @param toolkit
- * @return the master form.
- */
- protected abstract AbstractMasterForm createMasterPart(
- final FormToolkit toolkit);
-
- private void initializeMasterPart(final FormToolkit toolkit,
- final Composite parent)
- {
- _masterForm = createMasterPart(toolkit);
- _masterForm.initialize(this);
- _masterForm.createClientArea(parent);
- }
-
- private void createToolBarActions(final Form form)
- {
- _masterForm.contributeActions(form.getToolBarManager());
- }
-
- private void createDetailsPart(final Composite parent)
- {
- _detailsPanel = new Composite(parent, SWT.NONE);
- _detailLayout = new StackLayout();
- _detailsPanel.setLayout(_detailLayout);
-
- _detailForms = createDetailPages();
-
- for (final AbstractDetailsForm detailForm : _detailForms)
- {
- detailForm.initialize(_toolkit);
- detailForm.createContents(_detailsPanel);
- }
-
- // create default blank page
- _blankDetails = new BlankDetailsForm();
- _blankDetails.initialize(_toolkit);
- _blankDetails.createContents(_detailsPanel);
-
- _curPage = _blankDetails;
- _detailLayout.topControl = _curPage.getControl();
- _detailsPanel.layout();
- }
-
- public final void selectionChanged(final SelectionChangedEvent event)
- {
- final Object selectedObj = ((IStructuredSelection) event.getSelection())
- .getFirstElement();
- final AbstractDetailsForm page = selectPage(selectedObj);
- if (page != null)
- {
- final AbstractDetailsForm fpage = page;
- BusyIndicator.showWhile(_detailsPanel.getDisplay(), new Runnable()
- {
- public void run()
- {
- final AbstractDetailsForm oldPage = _curPage;
- _curPage = fpage;
- // commit the current page
- if (oldPage != null && oldPage.isDirty())
- {
- oldPage.commit(false);
- }
- // refresh the new page
- if (fpage.isStale())
- {
- fpage.refresh();
- }
- _curPage.selectionChanged(event.getSelection());
- // _pageBook.showPage(_curPage.getTextSection().getControl());
- _detailLayout.topControl = _curPage.getControl();
- _detailsPanel.layout();
- }
- });
- }
- }
-
- /**
- * @return a list of detail forms
- */
- protected abstract List<AbstractDetailsForm> createDetailPages();
-
- /**
- * @param forModel
- * @return the details form for 'forModel'. If implementer returns null,
- * then a blank page will be provided
- */
- protected abstract AbstractDetailsForm doSelectPage(final Object forModel);
-
- private AbstractDetailsForm selectPage(final Object forModel)
- {
- final AbstractDetailsForm clientForm = doSelectPage(forModel);
-
- if (clientForm != null)
- {
- return clientForm;
- }
- return _blankDetails;
- }
-
-} \ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/AbstractMasterForm.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/AbstractMasterForm.java
deleted file mode 100644
index 46ec8646e..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/AbstractMasterForm.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 Oracle Corporation 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:
- * Oracle Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.form;
-
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.ui.forms.widgets.Form;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- *
- * @author cbateman
- *
- */
-public abstract class AbstractMasterForm
-{
-
- private final FormToolkit _toolkit;
- private ISelectionChangedListener _listener;
- private ToolBarManager _toolBarManager;
-
- /**
- * @param toolkit
- */
- protected AbstractMasterForm(FormToolkit toolkit)
- {
- super();
- _toolkit = toolkit;
- }
-
- /**
- * @param listener
- * the selection listener that is signalled to indicate the
- * selection in the master has changed and the detail should be
- * updated.
- */
- public final void initialize(final ISelectionChangedListener listener)
- {
- _listener = listener;
- doInitialize();
- }
-
- /**
- * It is safe to call getListener() and get getToolkit() in this method. All
- * other methods should be considered unavailable.
- */
- protected void doInitialize()
- {
- // do nothing by default; override to do customize init
- }
-
- /**
- * @param parent
- * @return the client area for the master form, using parent is the parent
- * control.
- */
- public abstract Control createClientArea(final Composite parent);
-
- /**
- * @param form
- */
- public final void createHead(final Form form)
- {
- final Composite head = form.getHead();
- final Composite container = getToolkit().createComposite(head);
- container.setLayout(new RowLayout());
-
- // sub-class contribution
- contributeToHeadArea(getToolkit(), container);
-
- _toolBarManager = new ToolBarManager(SWT.FLAT);
- ToolBar toolbar = _toolBarManager.createControl(container);
- // _toolkit.adapt(toolbar, false, false);
-
- toolbar.setBackground(form.getHead().getBackground());
- toolbar.setForeground(form.getHead().getForeground());
- //toolbar.setCursor(FormsResources.getHandCursor());
- container.addDisposeListener(new DisposeListener()
- {
- public void widgetDisposed(DisposeEvent e)
- {
- if (_toolBarManager != null)
- {
- _toolBarManager.dispose();
- _toolBarManager = null;
- }
- }
- });
-
- form.setHeadClient(container);
-
- }
-
- /**
- * Override to add client area before the toolbar.
- *
- * @param toolkit
- * @param container
- */
- protected void contributeToHeadArea(FormToolkit toolkit, Composite container)
- {
- // do nothing by default
- }
-
- /**
- * @param formManager
- */
- public final void contributeActions(final IToolBarManager formManager)
- {
- contributeActions(formManager, _toolBarManager);
- }
-
- /**
- * @param formManager
- * adds to the toolkit's toolbar
- * @param localManager
- * adds to AbstractMasterForm's toolbar.
- */
- protected void contributeActions(final IToolBarManager formManager,
- final IToolBarManager localManager)
- {
- // do nothing by default. Override to add actions.
- }
-
- /**
- * Should be called at any time after initialize and createContents when the
- * owner is finished with the master-detail form block.
- */
- public void dispose()
- {
- // do nothing by default;
- }
-
- /**
- * @return the tool kit in use.
- */
- protected final FormToolkit getToolkit()
- {
- return _toolkit;
- }
-
- /**
- * @return the selection listener
- */
- protected final ISelectionChangedListener getListener()
- {
- return _listener;
- }
-} \ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/AbstractXMLSectionsDetailsForm.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/AbstractXMLSectionsDetailsForm.java
deleted file mode 100644
index 902ec7e94..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/AbstractXMLSectionsDetailsForm.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 Oracle Corporation 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:
- * Oracle Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.form;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.RowData;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * A detail form that uses XML text sections.
- *
- * @author cbateman
- *
- */
-public abstract class AbstractXMLSectionsDetailsForm extends
- AbstractDetailsForm
-{
- private Map<Object, XMLTextSection> _textSections;
- private Composite _detailFormComposite;
-
- /**
- * @param parent
- */
- @Override
- public final void createContents(final Composite parent)
- {
- _detailFormComposite = getToolkit().createComposite(parent, SWT.NONE);
- final RowLayout rowLayout = new RowLayout(SWT.VERTICAL);
- rowLayout.fill = true;
- _detailFormComposite.setLayout(rowLayout);
- // take a copy of what's returned so the sub-class can't control
- // the map reference
- _textSections = Collections
- .unmodifiableMap(new HashMap<Object, XMLTextSection>(
- createXMLTextSections(_detailFormComposite)));
-
- final Set<XMLTextSection> expandedSections = getInitiallyExpanded(_textSections);
- for (final Map.Entry<? extends Object, XMLTextSection> entry : _textSections
- .entrySet())
- {
- final XMLTextSection section = entry.getValue();
- if (expandedSections.contains(section))
- {
- section._section.setExpanded(true);
- }
- }
- }
-
- /**
- * @param parent
- * the parent that should be used for all XMLTextSections
- * @return a map keyed by an object type understood by the sub-class
- * containing as values the XMLTextSections
- */
- protected abstract Map<? extends Object, XMLTextSection> createXMLTextSections(
- final Composite parent);
-
- /**
- * @param sections
- * @return the subset of XMLTextSections in the provided map that are to be
- * expanded. NOTE: all elements in the returned set must be in
- * sections.getValues.
- */
- protected abstract Set<XMLTextSection> getInitiallyExpanded(
- final Map<Object, XMLTextSection> sections);
-
- /**
- * @return the control for this form
- */
- @Override
- public Control getControl()
- {
- return _detailFormComposite;
- }
-
- /**
- * @param selection
- */
- public final void selectionChanged(final ISelection selection)
- {
- if (selection instanceof IStructuredSelection)
- {
- final Object selectionObj = ((IStructuredSelection) selection)
- .getFirstElement();
- doUpdateSelection(selectionObj);
- }
- }
-
- @Override
- public void commit(final boolean onSave)
- {
- // do nothing
- }
-
- @Override
- public void dispose()
- {
- // do nothing
- }
-
- @Override
- public void setFocus()
- {
- // do nothing; sub-classes should override to pick an XMLTextSection
- // where they want focus.
- }
-
- /**
- * An XML text section
- *
- */
- protected final static class XMLTextSection
- {
- private final Section _section;
- private FormText _formText;
-
- /**
- * @param toolkit
- * @param parent
- * @param title
- */
- public XMLTextSection(final FormToolkit toolkit,
- final Composite parent, final String title)
- {
- _section = toolkit.createSection(parent,
- ExpandableComposite.TREE_NODE
- | ExpandableComposite.CLIENT_INDENT);
- _section.setLayoutData(new RowData());
- _section.setText(title);
-
- _formText = toolkit.createFormText(_section, true);
- _formText.setText("", false, false); //$NON-NLS-1$
-
- _section.setClient(_formText);
- }
-
- /**
- * @param text
- * @param parseTags
- * @param expandURLs
- */
- public void setText(final String text, final boolean parseTags,
- final boolean expandURLs)
- {
- _formText.setText(text, parseTags, expandURLs);
- }
-
- /**
- * @return the parent control.
- */
- public Control getControl()
- {
- return _section;
- }
-
- /**
- * Force a visual relayout and update.
- */
- public void refresh()
- {
- _section.getParent().layout(true, true);
- }
- }
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/BlankDetailsForm.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/BlankDetailsForm.java
deleted file mode 100644
index 7678b0394..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/form/BlankDetailsForm.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 Oracle Corporation 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:
- * Oracle Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.form;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A blank details form.
- *
- * @author cbateman
- *
- */
-public final class BlankDetailsForm extends AbstractDetailsForm
-{
- private Composite _emptyPanel;
-
- @Override
- public void createContents(Composite parent)
- {
- _emptyPanel = getToolkit().createComposite(parent);
- }
-
- @Override
- public Control getControl()
- {
- return _emptyPanel;
- }
-
- @Override
- protected void doUpdateSelection(Object newSelection)
- {
- // do nothing
- }
-
- @Override
- public void commit(boolean onSave)
- {
- // nothing to commit
- }
-
- @Override
- public void dispose()
- {
- // nothing to dispose
- }
-
- @Override
- public void setFocus()
- {
- // don't bother changing focus
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/Alerts.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/Alerts.java
deleted file mode 100644
index 54c3a27a7..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/Alerts.java
+++ /dev/null
@@ -1,837 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.guiutils;
-
-import java.lang.reflect.InvocationTargetException;
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * This class will provide UI alert dialogs to the user. These will
- * automatically get the message from the plugin's resource bundle.
- *
- * NOTE: there are some generic exception methods included in this file. They
- * need resource bundles also, and they make the alerts bettern when the
- * exception is caught at a later stage.
- *
- * @author mengbo
- */
-public class Alerts {
- // this is used for junit testing to turn off all alerts and return the
- // default on yes/no dialogs.
- private static boolean _noAlerts = false;
-
- private ResourceBundle _rb;
-
- private String _pluginId;
-
- /**
- * Construct a alerts with the provided attributes. This constructor should
- * be used from the root plugin that has access to the resource bundle for
- * this plugin.
- *
- * @param plugin
- * @param rb
- * the resource bundle to use.
- */
- public Alerts(AbstractUIPlugin plugin, ResourceBundle rb) {
- _rb = rb;
- if (_rb == null) {
- throw new NullPointerException(
- "No resource bundle was provided to the Alerts."); //$NON-NLS-1$
- }
- if (plugin == null) {
- throw new NullPointerException(
- "No plugin was provided to the Alerts."); //$NON-NLS-1$
- }
- _pluginId = plugin.getBundle().getSymbolicName();
- }
-
- /**
- * Returns the text entered by a user in a simple request dialog.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param initialValue -
- * initial value in the text area.
- * @param validator -
- * something that checks for validity on the name.
- * @return null is returned if the user hits cancel, otherwise it is the
- * text they entered.
- */
- public String getInput(String titleKey, String msgKey, String initialValue,
- IInputValidator validator) {
- if (_noAlerts) {
- return null;
- }
-
- InputDialog inDialog = new InputDialog(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getShell(),
- getResourceString(titleKey), getResourceString(msgKey),
- initialValue, validator);
- inDialog.open();
- return inDialog.getValue();
- }
-
- /**
- * Displays an Error message to the user.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- */
- public void error(String titleKey, String msgKey) {
- if (_noAlerts) {
- return;
- }
-
- MessageDialog.openError(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getShell(),
- getResourceString(titleKey), getResourceString(msgKey));
- }
-
- /**
- * Displays an Error message to the user.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param arg0 -
- * arg to place into the resource bundle message.
- */
- public void error(String titleKey, String msgKey, Object arg0) {
- if (_noAlerts) {
- return;
- }
-
- Object[] args = new Object[1];
- args[0] = arg0;
-
- MessageFormat formatter = new MessageFormat(getResourceString(msgKey));
-
- MessageDialog.openError(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getShell(),
- getResourceString(titleKey), formatter.format(args));
- }
-
- /**
- * Displays an Error message to the user.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param arg0 -
- * arg to place into the resource bundle message.
- * @param arg1 -
- * arg to place into the resource bundle message.
- */
- public void error(String titleKey, String msgKey, Object arg0, Object arg1) {
- if (_noAlerts) {
- return;
- }
-
- Object[] args = new Object[2];
- args[0] = arg0;
- args[1] = arg1;
-
- MessageFormat formatter = new MessageFormat(getResourceString(msgKey));
-
- MessageDialog.openError(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getShell(),
- getResourceString(titleKey), formatter.format(args));
- }
-
- /**
- * Displays an Error message to the user.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param arg0 -
- * arg to place into the resource bundle message.
- * @param arg1 -
- * arg to place into the resource bundle message.
- * @param arg2 -
- * arg to place into the resource bundle message.
- */
- public void error(String titleKey, String msgKey, Object arg0, Object arg1,
- Object arg2) {
- if (_noAlerts) {
- return;
- }
-
- Object[] args = new Object[3];
- args[0] = arg0;
- args[1] = arg1;
- args[2] = arg2;
-
- MessageFormat formatter = new MessageFormat(getResourceString(msgKey));
-
- MessageDialog.openError(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getShell(),
- getResourceString(titleKey), formatter.format(args));
- }
-
- /**
- * Displays an Error message to the user.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param arg0 -
- * arg to place into the resource bundle message.
- * @param arg1 -
- * arg to place into the resource bundle message.
- * @param arg2 -
- * arg to place into the resource bundle message.
- * @param arg3 -
- * arg to place into the resource bundle message.
- */
- public void error(String titleKey, String msgKey, Object arg0, Object arg1,
- Object arg2, Object arg3) {
- if (_noAlerts) {
- return;
- }
-
- Object[] args = new Object[4];
- args[0] = arg0;
- args[1] = arg1;
- args[2] = arg2;
- args[3] = arg3;
-
- MessageFormat formatter = new MessageFormat(getResourceString(msgKey));
-
- MessageDialog.openError(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getShell(),
- getResourceString(titleKey), formatter.format(args));
- }
-
- /**
- * Displays an Error message to the user.
- *
- * @param shell -
- * the shell for the error dialog
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- */
- public void error(Shell shell, String titleKey, String msgKey) {
- if (_noAlerts) {
- return;
- }
-
- MessageDialog.openError(shell, getResourceString(titleKey),
- getResourceString(msgKey));
- }
-
- /**
- * Displays an Error message to the user with a status using the Display
- * background thread.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- */
- public void detailError(String titleKey, String msgKey) {
- if (_noAlerts) {
- return;
- }
-
- final IStatus fstatus = new Status(IStatus.ERROR, _pluginId,
- IStatus.OK, getResourceString(msgKey), null);
- final String ftitle = getResourceString(titleKey);
-
- Display display = getStandardDisplay();
- display.asyncExec(new Runnable() {
- public void run() {
- ErrorDialog.openError(null, ftitle, null, fstatus);
- }
- });
- }
-
- /**
- * Displays an Error message to the user with a status using the Display
- * background thread. This will give the details button.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param tt -
- * exception to place in the details.
- */
- public void detailError(String titleKey, String msgKey, Throwable tt) {
- if (_noAlerts) {
- return;
- }
-
- internalDetailError(getResourceString(titleKey),
- getResourceString(msgKey), tt);
- }
-
- /**
- * Displays an Error message to the user with a status using the Display
- * background thread. This will give the details button.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param arg0 -
- * arg to place into the resource bundle message.
- * @param tt -
- * exception to place in the details.
- */
- public void detailError(String titleKey, String msgKey, Object arg0,
- Throwable tt) {
- if (_noAlerts) {
- return;
- }
-
- Object[] args = new Object[1];
- args[0] = arg0;
-
- MessageFormat formatter = new MessageFormat(getResourceString(msgKey));
-
- internalDetailError(getResourceString(titleKey),
- formatter.format(args), tt);
- }
-
- /**
- * Displays an Error message to the user with a status using the Display
- * background thread. This will give the details button.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param arg0 -
- * arg to place into the resource bundle message.
- * @param arg1 -
- * arg to place into the resource bundle message.
- * @param tt -
- * exception to place in the details.
- */
- public void detailError(String titleKey, String msgKey, Object arg0,
- Object arg1, Throwable tt) {
- if (_noAlerts) {
- return;
- }
-
- Object[] args = new Object[1];
- args[0] = arg0;
- args[1] = arg1;
-
- MessageFormat formatter = new MessageFormat(getResourceString(msgKey));
-
- internalDetailError(getResourceString(titleKey),
- formatter.format(args), tt);
- }
-
- /**
- * Displays an Error message to the user with a status using the Display
- * background thread. This will give the details button.
- *
- * @param title -
- * the title message
- * @param message -
- * message displayed to the user
- */
- private void internalDetailError(String title, String msg, Throwable tt) {
- if (_noAlerts) {
- return;
- }
-
- if (tt instanceof InvocationTargetException) {
- tt = ((InvocationTargetException) tt).getTargetException();
- }
-
- IStatus status = null;
- if (tt instanceof CoreException) {
- status = ((CoreException) tt).getStatus();
-
- if ((status instanceof MultiStatus) == false) {
- // convert to a multistatus to show the exception details.
-
- Throwable th = status.getException();
- if (th == null) {
- th = tt;
- }
-
- status = buildStackTraceStatus(IStatus.ERROR, status
- .getPlugin(), status.getMessage(), th);
- }
- } else {
- status = buildStackTraceStatus(IStatus.ERROR, _pluginId, tt
- .getMessage(), tt);
- }
-
- final String ftitle = title;
- final IStatus fstatus = status;
- final String fmsg = msg;
- Display display = getStandardDisplay();
- display.asyncExec(new Runnable() {
- public void run() {
- ErrorDialog.openError(null, ftitle, fmsg, fstatus);
- }
- });
- }
-
- /**
- * Builds a multistatus, so that the stack trace shows up in the alery
- * message for detailed alerts.
- *
- * @param code
- * @param pluginId
- * @param message
- * @param tt
- * @return the result of the operation
- */
- public IStatus buildStackTraceStatus(int code, String pluginId,
- String message, Throwable tt) {
- if (tt == null) {
- return new Status(code, pluginId, IStatus.OK, message, tt);
- }
-
- MultiStatus mstat = new MultiStatus(pluginId, code, message, tt);
-
- StackTraceElement[] trace = tt.getStackTrace();
-
- mstat.add(new Status(code, pluginId, IStatus.OK, tt.toString(), null));
- for (int ii = 0; ii < trace.length; ii++) {
- mstat.add(new Status(code, pluginId, IStatus.OK, trace[ii]
- .toString(), null));
- }
- return mstat;
- }
-
- /**
- * Displays an Error message to the user with a status using the Display
- * background thread. This will give the details button.
- *
- * @param status -
- * the status
- * @param title -
- * the title of the message
- */
- public void detailError(String title, IStatus status) {
- if (_noAlerts) {
- return;
- }
-
- final IStatus fstatus = status;
- final String ftitle = title;
- Display display = getStandardDisplay();
- display.asyncExec(new Runnable() {
- public void run() {
- ErrorDialog.openError(null, ftitle, null, fstatus);
- }
- });
- }
-
- /**
- * Displays an information message to the user.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- */
- public void info(String titleKey, String msgKey) {
- if (_noAlerts) {
- return;
- }
-
- MessageDialog.openInformation(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getShell(),
- getResourceString(titleKey), getResourceString(msgKey));
- }
-
- /**
- * Displays an information message to the user.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param arg0 -
- * arg to place into the resource bundle message.
- */
- public void info(String titleKey, String msgKey, Object arg0) {
- if (_noAlerts) {
- return;
- }
-
- Object[] args = new Object[1];
- args[0] = arg0;
-
- MessageFormat formatter = new MessageFormat(getResourceString(msgKey));
-
- MessageDialog.openInformation(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getShell(),
- getResourceString(titleKey), formatter.format(args));
- }
-
- /**
- * Displays an confirmation message to the user.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @return true if the user presses the OK button, false otherwise
- */
- public boolean confirm(String titleKey, String msgKey) {
- if (_noAlerts) {
- return true;
- }
-
- return MessageDialog.openConfirm(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getShell(),
- getResourceString(titleKey), getResourceString(msgKey));
- }
-
- /**
- * Displays an confirmation message to the user.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param arg0 -
- * arg to place into the resource bundle message.
- * @return true if the user presses the OK button, false otherwise
- */
- public boolean confirm(String titleKey, String msgKey, Object arg0) {
- if (_noAlerts) {
- return true;
- }
-
- Object[] args = new Object[1];
- args[0] = arg0;
-
- MessageFormat formatter = new MessageFormat(getResourceString(msgKey));
-
- return MessageDialog.openConfirm(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getShell(),
- getResourceString(titleKey), formatter.format(args));
- }
-
- /**
- * Displays an question message to the user.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @return true if the user presses the "yes" button, false otherwise
- */
- public boolean question(String titleKey, String msgKey) {
- if (_noAlerts) {
- return true;
- }
-
- return MessageDialog.openQuestion(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getShell(),
- getResourceString(titleKey), getResourceString(msgKey));
- }
-
- /**
- * Displays an question message to the user.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param arg0 -
- * arg to place into the resource bundle message.
- * @return true if the user presses the "yes" button, false otherwise
- */
- public boolean question(String titleKey, String msgKey, Object arg0) {
- if (_noAlerts) {
- return true;
- }
-
- Object[] args = new Object[1];
- args[0] = arg0;
-
- MessageFormat formatter = new MessageFormat(getResourceString(msgKey));
-
- return MessageDialog.openQuestion(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getShell(),
- getResourceString(titleKey), formatter.format(args));
- }
-
- /**
- * Displays an warning message to the user.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- */
- public void warning(String titleKey, String msgKey) {
- if (_noAlerts) {
- return;
- }
-
- MessageDialog.openWarning(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getShell(),
- getResourceString(titleKey), getResourceString(msgKey));
- }
-
- /**
- * Displays an warning message to the user.
- *
- * @param titleKey -
- * the title resource bundle key for the message
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param arg0 -
- * arg to place into the resource bundle message.
- */
- public void warning(String titleKey, String msgKey, Object arg0) {
- if (_noAlerts) {
- return;
- }
-
- Object[] args = new Object[1];
- args[0] = arg0;
-
- MessageFormat formatter = new MessageFormat(getResourceString(msgKey));
-
- MessageDialog.openWarning(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getShell(),
- getResourceString(titleKey), formatter.format(args));
- }
-
- /**
- * Returns the standard display to be used. The method first checks, if the
- * thread calling this method has an associated dispaly. If so, this display
- * is returned. Otherwise the method returns the default display.
- *
- * TODO: should probably use the workbench display
- */
- private Display getStandardDisplay() {
- Display display = Display.getCurrent();
- if (display == null) {
- display = Display.getDefault();
- }
- return display;
- }
-
- /**
- * Returns the string from the resource bundle, or 'key' if not found.
- */
- private String getResourceString(String key) {
- if (key == null) {
- return null;
- }
-
- try {
- return _rb.getString(key);
- } catch (MissingResourceException ee) {
- return key;
- }
- }
-
- /**
- * Throw a core exception built around the message with the correct plugin
- * id and resource bundle string.
- *
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @throws CoreException
- */
- public void throwCoreException(String msgKey) throws CoreException {
- IStatus status = new Status(IStatus.ERROR, _pluginId, IStatus.OK,
- getResourceString(msgKey), null);
- throw new CoreException(status);
- }
-
- /**
- * Throw a core exception built around the message with the correct plugin
- * id and resource bundle string.
- *
- * @param ee -
- * the real exception.
- * @throws CoreException
- */
- public void throwCoreException(Throwable ee) throws CoreException {
- IStatus status = new Status(IStatus.ERROR, _pluginId, IStatus.OK, ee
- .getMessage(), ee);
- throw new CoreException(status);
- }
-
- /**
- * Throw a core exception built around the message with the correct plugin
- * id and resource bundle string.
- *
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param ee -
- * the real exception.
- * @throws CoreException
- */
- public void throwCoreException(String msgKey, Throwable ee)
- throws CoreException {
- IStatus status = new Status(IStatus.ERROR, _pluginId, IStatus.OK,
- getResourceString(msgKey), ee);
- throw new CoreException(status);
- }
-
- /**
- * Throw a core exception built around the message with the correct plugin
- * id and resource bundle string.
- *
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param arg0 -
- * arg to place into the resource bundle message.
- * @throws CoreException
- */
- public void throwCoreException(String msgKey, Object arg0)
- throws CoreException {
- Object[] args = new Object[1];
- args[0] = arg0;
-
- MessageFormat formatter = new MessageFormat(getResourceString(msgKey));
-
- IStatus status = new Status(IStatus.ERROR, _pluginId, IStatus.OK,
- formatter.format(args), null);
- throw new CoreException(status);
- }
-
- /**
- * Throw a core exception built around the message with the correct plugin
- * id and resource bundle string.
- *
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param arg0 -
- * arg to place into the resource bundle message.
- * @param ee -
- * the real exception.
- * @throws CoreException
- */
- public void throwCoreException(String msgKey, Object arg0, Throwable ee)
- throws CoreException {
- Object[] args = new Object[1];
- args[0] = arg0;
-
- MessageFormat formatter = new MessageFormat(getResourceString(msgKey));
-
- IStatus status = new Status(IStatus.ERROR, _pluginId, IStatus.OK,
- formatter.format(args), ee);
- throw new CoreException(status);
- }
-
- /**
- * Throw a core exception built around the message with the correct plugin
- * id and resource bundle string.
- *
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param arg0 -
- * arg to place into the resource bundle message.
- * @param arg1 -
- * arg to place into the resource bundle message.
- * @throws CoreException
- */
- public void throwCoreException(String msgKey, Object arg0, Object arg1)
- throws CoreException {
- Object[] args = new Object[2];
- args[0] = arg0;
- args[1] = arg1;
-
- MessageFormat formatter = new MessageFormat(getResourceString(msgKey));
-
- IStatus status = new Status(IStatus.ERROR, _pluginId, IStatus.OK,
- formatter.format(args), null);
- throw new CoreException(status);
- }
-
- /**
- * Throw a core exception built around the message with the correct plugin
- * id and resource bundle string.
- *
- * @param msgKey -
- * message resource bundle key for the message displayed to the
- * user
- * @param arg0 -
- * arg to place into the resource bundle message.
- * @param arg1 -
- * arg to place into the resource bundle message.
- * @param ee -
- * the real exception.
- * @throws CoreException
- */
- public void throwCoreException(String msgKey, Object arg0, Object arg1,
- Throwable ee) throws CoreException {
- Object[] args = new Object[2];
- args[0] = arg0;
- args[1] = arg1;
-
- MessageFormat formatter = new MessageFormat(getResourceString(msgKey));
-
- IStatus status = new Status(IStatus.ERROR, _pluginId, IStatus.OK,
- formatter.format(args), ee);
- throw new CoreException(status);
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/BrowserWindow.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/BrowserWindow.java
deleted file mode 100644
index 33ce9faf4..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/BrowserWindow.java
+++ /dev/null
@@ -1,391 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.guiutils;
-
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.LocationAdapter;
-import org.eclipse.swt.browser.LocationEvent;
-import org.eclipse.swt.browser.OpenWindowListener;
-import org.eclipse.swt.browser.StatusTextEvent;
-import org.eclipse.swt.browser.StatusTextListener;
-import org.eclipse.swt.browser.WindowEvent;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-
-/**
- * Brings up a browser into a separate window.
- *
- * @author mengbo.
- *
- * Unused???
- */
-public class BrowserWindow extends ApplicationWindow {
-
- private static final String RELOAD_ITEM_IMAGE_FILE = "reload_nav_16.gif"; //$NON-NLS-1$
-
- private static final String REFRESH_ITEM_IMAGE_FILE = "refresh_nav_16.gif"; //$NON-NLS-1$
-
- private static final String STOP_ITEM_IMAGE_FILE = "stop_nav_16.gif"; //$NON-NLS-1$
-
- private static final String FORWARD_ITEM_IMAGE_FILE = "forward_nav_16.gif"; //$NON-NLS-1$
-
- private static final String BACK_ITEM_IMAGE_FILE = "back_nav_16.gif"; //$NON-NLS-1$
-
-
- /**
- * Command to send to the browser.
- */
- private static final int BROWSER_CMD_BACK = 1;
-
- private static final int BROWSER_CMD_FORWARD = 2;
-
- private static final int BROWSER_CMD_STOP = 3;
-
- private static final int BROWSER_CMD_REFRESH = 4;
-
- private static final int BROWSER_CMD_RELOAD = 5;
-
- private boolean _bIncludeToolbar;
-
- private boolean _bPopups;
-
- private String _title;
-
- private ScrolledComposite _scomp;
-
- private Composite _browserComposite;
-
- private Browser _browser;
-
- private String _startLocation;
-
- private String _startContent;
-
- // these items are browser context sensitive.
- private ToolItem _backItem;
-
- private ToolItem _forwardItem;
-
- /**
- * @param parentShell
- * owner of this window.
- */
- public BrowserWindow(Shell parentShell) {
- this(parentShell, false, null, false);
- }
-
- /**
- * @param parentShell
- * owner of this window.
- * @param bPopups
- * allow popup windows?
- * @param title
- * Tittle on window.
- */
- public BrowserWindow(Shell parentShell, boolean bPopups, String title) {
- this(parentShell, bPopups, title, false);
- }
-
- /**
- * @param parentShell
- * owner of this window.
- * @param bPopups
- * allow popup windows?
- * @param title
- * Tittle on window.
- * @param bModal
- * pretend to a be a dialog?
- */
- public BrowserWindow(Shell parentShell, boolean bPopups, String title,
- boolean bModal) {
- super(parentShell);
- addStatusLine();
- _bPopups = bPopups;
- _title = title;
- includeToolbar(true);
-
- if (bModal && (parentShell != null)) {
- // APPLICATION_MODAL, MODELESS, PRIMARY_MODAL, SYSTEM_MODAL
- setShellStyle(getShellStyle() | SWT.APPLICATION_MODAL);
- setBlockOnOpen(true);
- }
- }
-
- /**
- * Default is true, set whether to include the toolbar at the top. This must
- * be called before the window is opened.
- *
- * @param bIncludeToolbar
- */
- public void includeToolbar(boolean bIncludeToolbar) {
- _bIncludeToolbar = bIncludeToolbar;
- }
-
- /**
- * @param title
- */
- public void setTitle(String title) {
- if ((title != null) && (super.getShell() != null)) {
- super.getShell().setText(title);
- }
- }
-
- /**
- * @param startLocation
- */
- /**
- * @param startLocation
- */
- public void setStartLocation(String startLocation) {
- _startLocation = startLocation;
- }
-
- /**
- * @param startContent
- */
- public void setStartContent(String startContent) {
- _startContent = startContent;
- }
-
- /**
- * @return the browser object
- */
- public Browser getBrowser() {
- return _browser;
- }
-
- protected Control createContents(Composite parent) {
- // Create the scroll composite as the one inside the parent.
- _scomp = new ScrolledComposite(parent, SWT.V_SCROLL | SWT.H_SCROLL);
-
- // Create the composite that goes inside the scroller. We will use this
- // for
- // everything else from here.
- Composite innerComposite = SWTUtils.createComposite(_scomp, 1, 10, -1);
- _scomp.setContent(innerComposite);
- ControlListener listener = new ControlAdapter() {
- // this will handle resizing the browser when the window is resized.
- public void controlResized(ControlEvent e) {
- Point pt = _scomp.getParent().getSize();
- Rectangle rect = _browserComposite.getBounds();
-
- pt.x -= rect.x;
- pt.y -= rect.y;
-
- // spacing offsets in the composites.
- pt.x -= 10;
- pt.y -= 60; // need status bar at bottom...30 more than normal.
-
- // do the sanity check here since it prevents further checks.
- if ((pt.x <= 0) || (pt.y <= 0)) {
- return;
- }
-
- Rectangle innerRect = _scomp.getContent().getBounds();
- Rectangle outerRect = _scomp.getBounds();
-
- // substract if the scroll bars are visible.
- if (innerRect.width > outerRect.width) {
- pt.y -= _scomp.getHorizontalBar().getSize().y;
- }
- if (innerRect.height > outerRect.height) {
- pt.x -= _scomp.getVerticalBar().getSize().x;
- }
-
- _browserComposite.setSize(pt);
- _browserComposite.getParent().layout(true);
- }
- };
- _scomp.addControlListener(listener);
-
- if (_bIncludeToolbar) {
- // ////////////////////////////////////////
- // toobar
- // ////////////////////////////////////////
- ToolBar tb = new ToolBar(innerComposite, SWT.HORIZONTAL | SWT.FLAT);
- fillToolbar(tb);
- }
-
- // ////////////////////////////////////////
- // browser
- // ////////////////////////////////////////
- _browserComposite = new Composite(innerComposite, SWT.NULL);
- _browserComposite.setLayout(new FillLayout());
-
- _browser = new Browser(_browserComposite, SWT.NULL);
-
- if (_startLocation != null) {
- _browser.setUrl(_startLocation);
- } else if (_startContent != null) {
- _browser.setText(_startContent);
- } else {
- _browser.setText(Messages.BrowserWindow_loading);
- }
-
- // send the browser status messages to eclipse.
- _browser.addStatusTextListener(new StatusTextListener() {
- public void changed(StatusTextEvent event) {
- setStatus(event.text);
- }
- });
-
- if (_bIncludeToolbar) {
- // check for change in location so we can enable the back/forward
- // buttons.
- _browser.addLocationListener(new LocationAdapter() {
- public void changed(LocationEvent event) {
- // check if there is something in the forward or back queue.
- _backItem.setEnabled(_browser.isBackEnabled());
- _forwardItem.setEnabled(_browser.isForwardEnabled());
- }
- });
- }
-
- // check is we need to open a new window.
- _browser.addOpenWindowListener(new OpenWindowListener() {
- public void open(WindowEvent event) {
- if (_bPopups) {
- BrowserWindow window = new BrowserWindow(getShell());
- window.open();
- event.browser = window.getBrowser();
- } else {
- event.browser = getBrowser();
- }
- }
- });
-
- setTitle(_title);
- SWTUtils.computeScrollArea(_scomp, innerComposite);
- return _scomp;
- }
-
- /**
- * Fill the toolbar for this window. This method can be overwritten to place
- * other toolbar controls in the bar.
- *
- * @param tb
- */
- protected void fillToolbar(ToolBar tb) {
- // Back browser
- _backItem = new ToolItem(tb, SWT.PUSH);
- _backItem.setImage(JSFUICommonPlugin.getDefault()
- .getImage(BACK_ITEM_IMAGE_FILE));
- _backItem.setToolTipText(JSFUICommonPlugin
- .getResourceString("BrowserWindow.back.tooltip")); //$NON-NLS-1$
- SelectionListener backSelectionListener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- browserCmd(BROWSER_CMD_BACK);
- }
- };
- _backItem.addSelectionListener(backSelectionListener);
-
- // Forward Browser
- _forwardItem = new ToolItem(tb, SWT.PUSH);
- _forwardItem.setImage(JSFUICommonPlugin.getDefault().getImage(
- FORWARD_ITEM_IMAGE_FILE));
- _forwardItem.setToolTipText(JSFUICommonPlugin
- .getResourceString("BrowserWindow.forward.tooltip")); //$NON-NLS-1$
- SelectionListener forwardSelectionListener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- browserCmd(BROWSER_CMD_FORWARD);
- }
- };
- _forwardItem.addSelectionListener(forwardSelectionListener);
-
- // Stop Browser
- ToolItem stopItem = new ToolItem(tb, SWT.PUSH);
- stopItem
- .setImage(JSFUICommonPlugin.getDefault().getImage(STOP_ITEM_IMAGE_FILE));
- stopItem.setToolTipText(JSFUICommonPlugin
- .getResourceString("BrowserWindow.stop.tooltip")); //$NON-NLS-1$
- SelectionListener stopSelectionListener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- browserCmd(BROWSER_CMD_STOP);
- }
- };
- stopItem.addSelectionListener(stopSelectionListener);
-
- // Refresh Browser
- ToolItem refreshItem = new ToolItem(tb, SWT.PUSH);
- refreshItem.setImage(JSFUICommonPlugin.getDefault().getImage(
- REFRESH_ITEM_IMAGE_FILE));
- refreshItem.setToolTipText(JSFUICommonPlugin
- .getResourceString("BrowserWindow.refresh.tooltip")); //$NON-NLS-1$
- SelectionListener refreshServiceSelectionListener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- browserCmd(BROWSER_CMD_REFRESH);
- }
- };
- refreshItem.addSelectionListener(refreshServiceSelectionListener);
-
- if ((_startLocation != null) || (_startContent != null)) {
- // Reload Browser.
- ToolItem reloadItem = new ToolItem(tb, SWT.PUSH);
- reloadItem.setImage(JSFUICommonPlugin.getDefault().getImage(
- RELOAD_ITEM_IMAGE_FILE));
- reloadItem.setToolTipText(JSFUICommonPlugin
- .getResourceString("BrowserWindow.reload.tooltip")); //$NON-NLS-1$
- SelectionListener reloadSelectionListener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- browserCmd(BROWSER_CMD_RELOAD);
- }
- };
- reloadItem.addSelectionListener(reloadSelectionListener);
- }
- }
-
- /**
- * send the browser widget a command as defined by the cmd constant defines.
- * @param cmd
- *
- * @return true if the command was successful.
- */
- public boolean browserCmd(int cmd) {
- switch (cmd) {
- case BROWSER_CMD_BACK:
- return _browser.back();
- case BROWSER_CMD_FORWARD:
- return _browser.forward();
- case BROWSER_CMD_STOP:
- _browser.stop();
- return true;
- case BROWSER_CMD_REFRESH:
- _browser.refresh();
- return true;
- case BROWSER_CMD_RELOAD:
- if (_startLocation != null) {
- _browser.setUrl(_startLocation);
- } else if (_startContent != null) {
- _browser.setText(_startContent);
- }
- return true;
-
- }
- return false;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/CollapsableSection.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/CollapsableSection.java
deleted file mode 100644
index f787c2240..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/CollapsableSection.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.guiutils;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * Creates a class to be used to build a control for a collapseable area inside
- * a scrollable composite. This will take care of scrollbar resize.
- *
- * Example use:
- *
- * CollapsableSection cs = new CollapsableSection(toolkit, scomp, "General",
- * true) { public void setCollapsableContent(Composite composite) { // place
- * your content on this composite.... } }); cs.createControl(composite,
- * horizontalSpan);
- *
- * @author mengbo
- *
- */
-public abstract class CollapsableSection {
- // internal fields needed for doing the section and computing the scrollbar
- // on a collapse.
- private FormToolkit _toolkit;
-
- private Section _section;
-
- private ScrolledComposite _scomp;
-
- private String _title;
-
- private int _expansionStyle;
-
- /**
- * Creates a class to be used to build the control for a collapseable area.
- *
- * @param toolkit
- *
- * @param scomp
- * the scrollable composite used inside the container. This is
- * used to force resizing of the bars on dinking the control.
- * @param title
- * the string to place next to the collapsable icon.
- * @param bCollapsed
- * should this area start collapsed?
- */
- public CollapsableSection(FormToolkit toolkit, ScrolledComposite scomp,
- String title, boolean bCollapsed) {
- _toolkit = toolkit;
- _scomp = scomp;
- _title = title;
- _expansionStyle = ExpandableComposite.TWISTIE
- | ExpandableComposite.FOCUS_TITLE;
- if (bCollapsed) {
- _expansionStyle |= ExpandableComposite.COMPACT;
- } else {
- _expansionStyle |= ExpandableComposite.EXPANDED;
- }
- }
-
- /**
- * Build the GUI parts of the Collapsable area into the given composite.
- * NOTE: you must set the layout on this composite before adding swt
- * widgets.
- *
- * @param composite
- */
- abstract public void setCollapsableContent(Composite composite);
-
- /**
- * A convient way to build the widget into a control and place it on the
- * page. NOTE: this method will build the Section and call
- * setCollapsableContent with a composite to fill in the inner area.
- *
- * @param parent
- * @param horizontalSpan
- * how many columns should this control span.
- * @return Control that was added to the composite.
- */
- public Control createControl(Composite parent, int horizontalSpan) {
- _section = _toolkit.createSection(parent, _expansionStyle);
- _section.clientVerticalSpacing = 5; // space between the dink and the
- // controls in when opened.
- // _section.marginHeight = 5; // indents the entire section.
- // _section.marginWidth = 5; // indents the entire section.
- _section.setText(_title);
- _toolkit.createCompositeSeparator(_section);
- _section.addExpansionListener(new ExpansionAdapter() {
- public void expansionStateChanged(ExpansionEvent event) {
- SWTUtils.computeScrollArea(_scomp, (Composite) _scomp
- .getContent());
- }
- });
-
- Composite content = new Composite(_section, SWT.NULL);
- setCollapsableContent(content);
-
- _section.setClient(content);
- GridData gd = new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalSpan = horizontalSpan;
- _section.setLayoutData(gd);
-
- return _section;
- }
-
- /**
- * Programmatically changes expanded state.
- *
- * @param expanded
- * the new expanded state
- */
- public void setExpanded(boolean expanded) {
- if (_section != null) {
- _section.setExpanded(expanded);
-
- // NOTE: internal calling of expanding doesn't fire
- // the event to resize. We do it here.
- SWTUtils.computeScrollArea(_scomp, (Composite) _scomp.getContent());
- }
- }
-
- /**
- * Return the internal Section control for more advanced things.
- *
- * @return Section
- */
- public Section getSection() {
- return _section;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/FavoriteSection.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/FavoriteSection.java
deleted file mode 100644
index be9882cb7..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/FavoriteSection.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.guiutils;
-
-import java.util.Properties;
-
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.jst.jsf.common.ui.internal.utils.FavoriteConfigurations;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * Builds a favorites with the given name in the plugins resources. This build a
- * generic looking favorites section.
- *
- * @author mengbo
- */
-public abstract class FavoriteSection {
- private FavoriteConfigurations _favorites;
-
- private Combo _favoriteCombo;
-
- /**
- * @param plugin
- * @param favoriteName
- */
- public FavoriteSection(AbstractUIPlugin plugin, String favoriteName) {
- _favorites = new FavoriteConfigurations(plugin, favoriteName);
- }
-
- /**
- * @param parent
- * @param horizontalSpan
- * @param comboMinWidth
- * @return the combo
- */
- public Combo createFavoriteGroup(Composite parent, int horizontalSpan,
- int comboMinWidth) {
- Group favGroup = SWTUtils.createGroup(parent, JSFUICommonPlugin
- .getResourceString("favorites.group.label"), 4, horizontalSpan, //$NON-NLS-1$
- GridData.BEGINNING | GridData.CENTER);
-
- // Add favorite text field
- SWTUtils.createLabel(favGroup, JSFUICommonPlugin
- .getResourceString("favorites.label"), 1); //$NON-NLS-1$
- _favoriteCombo = SWTUtils.createCombo(favGroup, _favorites
- .getFavoritesList(), 1, comboMinWidth, true);
- _favoriteCombo.setToolTipText(JSFUICommonPlugin
- .getResourceString("favorites.tooltip")); //$NON-NLS-1$
- _favoriteCombo.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- String favName = _favoriteCombo.getText().trim();
- if (favName.length() > 0) {
- Properties favProp = _favorites.getFavorite(_favoriteCombo
- .getText().trim());
- if (favProp != null) {
- setFavorites(favProp);
- }
- }
- }
- });
-
- // Add Save button
- Button saveButton = SWTUtils.createPushButton(favGroup, JSFUICommonPlugin
- .getResourceString("button.save")); //$NON-NLS-1$
- saveButton.setToolTipText(JSFUICommonPlugin
- .getResourceString("favorites.save.tooltip")); //$NON-NLS-1$
- saveButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- String favName = _favoriteCombo.getText().trim();
- if (favName.length() == 0) {
- favName = JSFUICommonPlugin
- .getResourceString("favorites.default"); //$NON-NLS-1$
- }
- Properties favProp = new Properties();
- saveFavorites(favProp);
-
- _favorites.addFavorite(favName, favProp);
- _favorites.saveFavorites();
-
- _favoriteCombo.removeAll();
- String[] names = _favorites.getFavoritesList();
-
- _favoriteCombo.setItems(names);
- _favoriteCombo.setText(favName);
- }
- });
-
- // Add Remove button
- Button removeButton = SWTUtils.createPushButton(favGroup, JSFUICommonPlugin
- .getResourceString("button.remove")); //$NON-NLS-1$
- removeButton.setToolTipText(JSFUICommonPlugin
- .getResourceString("favorites.remove.tooltip")); //$NON-NLS-1$
- removeButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- String favName = _favoriteCombo.getText().trim();
- if (favName.length() > 0) {
- _favorites.removeFavorite(favName);
- _favorites.saveFavorites();
-
- removeFavorites();
-
- _favoriteCombo.removeAll();
- String[] names = _favorites.getFavoritesList();
- _favoriteCombo.setItems(names);
- }
- }
- });
-
- return _favoriteCombo;
- }
-
- /**
- * This method will be called when a new favorite is set. This allows the
- * caller to set their values from the properties supplied.
- *
- * @param prop
- */
- public abstract void setFavorites(Properties prop);
-
- /**
- * This method will be called when a new favorite is saved. This allows the
- * caller to save their values into the properties supplied.
- *
- * @param prop
- */
- public abstract void saveFavorites(Properties prop);
-
- /**
- * This method will be called when the active favorite is removed. It allows
- * for clearing fields.
- */
- public void removeFavorites() {
- // do nothing.
- }
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/ImageContainer.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/ImageContainer.java
deleted file mode 100644
index 8f697d164..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/ImageContainer.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.guiutils;
-
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * A general purpose class for displying an image in a composite. There is no
- * eclipse tool for doing this other than CLabl which is bulkly.
- *
- * This was original written by Karl Reti.
- *
- * @author mengbo
- */
-public class ImageContainer extends Composite {
- private Image _image = null;
-
- private boolean _bCleanupImage;
-
- /**
- * @param parent
- */
- public ImageContainer(Composite parent) {
- super(parent, SWT.NONE);// SWT.NO_BACKGROUND );//|
- // SWT.NO_REDRAW_RESIZE);
- setBackground(ColorConstants.white);
- // paint the image
- addPaintListener(new PaintListener() {
- public void paintControl(PaintEvent e) {
- if (_image != null) {
- e.gc.drawImage(_image, 0, 0);
- }
- }
-
- });
-
- addControlListener(new ControlAdapter() {
- public void controlResized(ControlEvent e) {
- setSize(_image.getBounds().width, _image.getBounds().height);
- }
- });
-
- // tidy up
- addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent e) {
- if (_bCleanupImage && _image != null && !_image.isDisposed()) {
- _image.dispose();
- }
- }
- });
- }
-
- /**
- * @return Returns the image.
- */
- public Image getImage() {
- return _image;
- }
-
- /**
- * @return should the image be disposed of on cleanup. Set false if the
- * image is cached.
- */
- public boolean isCleanupImage() {
- return _bCleanupImage;
- }
-
- /**
- * @param image
- * The image to set.
- */
- public void setImage(Image image) {
- setImage(image, false);
- }
-
- /**
- * @param image
- * The image to set.
- * @param bCleanupImage
- */
- public void setImage(Image image, boolean bCleanupImage) {
- _image = image;
- _bCleanupImage = bCleanupImage;
- setSize(image.getBounds().width, image.getBounds().height);
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/IntroductionSection.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/IntroductionSection.java
deleted file mode 100644
index a022c1b63..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/IntroductionSection.java
+++ /dev/null
@@ -1,351 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jst.jsf.common.ui.internal.guiutils;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.help.HelpSystem;
-import org.eclipse.help.IContext;
-import org.eclipse.help.IHelpResource;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.jst.jsf.common.ui.internal.logging.Logger;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.SectionPart;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * Provides a standard looking introduction section for a intro page for the
- * editors. This was taken and is suppose to look like the standard Sybase
- * workspace service editors intro page.
- *
- * this was original written by Collinsc
- *
- * TODO: Should this be moved into the facesconfig ui plugin since it is only
- * really used there?
- *
- * @author collinsc,jchoi
- */
-public class IntroductionSection extends SectionPart {
-
- private static final String HELP_IMAGE_FILE = "help.gif"; //$NON-NLS-1$
-
- private static Logger _log = JSFUICommonPlugin
- .getLogger(IntroductionSection.class);
-
- private String _editorId;
-
- private FormToolkit _toolkit;
-
- // private ImageHyperlink _helpImage;
- private Composite _textClient;
-
- private String _helpContextId;
-
- private String _helpTooltip;
-
- /**
- * Basic constructor - no help with this one.
- *
- * @param editorId
- * id of the editor this page is for.
- * @param managedForm
- * @param toolkit
- */
- public IntroductionSection(String editorId, IManagedForm managedForm,
- FormToolkit toolkit) {
- this(editorId, managedForm, toolkit, null, null);
- }
-
- /**
- * Constructor with help option.
- *
- * @param editorId
- * id of the editor this page is for.
- * @param managedForm
- * @param toolkit
- * @param contextId
- * @param helpTooltip
- */
- public IntroductionSection(String editorId, IManagedForm managedForm,
- FormToolkit toolkit, final String contextId, String helpTooltip) {
- super(managedForm.getForm().getBody(), toolkit,
- ExpandableComposite.TITLE_BAR | Section.DESCRIPTION);
- super.initialize(managedForm);
- this._editorId = editorId;
- this._toolkit = toolkit;
- this._helpContextId = contextId;
- this._helpTooltip = helpTooltip;
-
- this._textClient = this._toolkit.createComposite(getSection(), SWT.NONE);
- this._textClient.setSize(32, 16);
-
- RowLayout rowLayout = new RowLayout();
- rowLayout.wrap = false;
- rowLayout.pack = false;
- rowLayout.justify = true;
- rowLayout.type = SWT.HORIZONTAL;
- rowLayout.marginLeft = 0;
- rowLayout.marginTop = 0;
- rowLayout.marginRight = 0;
- rowLayout.marginBottom = 0;
- rowLayout.spacing = 0;
- this._textClient.setLayout(rowLayout);
-
- this._toolkit.adapt(this._textClient, true, true);
- getSection().setTextClient(this._textClient);
-
- if (this._helpContextId != null) {
- // setup the help image.
- ImageHyperlink helpImage = new ImageHyperlink(this._textClient,
- SWT.NONE);
- this._toolkit.adapt(helpImage, true, true);
- helpImage.setImage(JSFUICommonPlugin.getDefault().getImage(HELP_IMAGE_FILE));
- if (this._helpTooltip != null) {
- helpImage.setToolTipText(this._helpTooltip);
- }
- helpImage.setBackground(getSection()
- .getTitleBarGradientBackground());
- helpImage.addHyperlinkListener(new HyperlinkAdapter() {
- public void linkActivated(HyperlinkEvent e) {
- IContext context = HelpSystem.getContext(_helpContextId);
- if (context != null) {
- IHelpResource[] topics = context.getRelatedTopics();
- if (topics != null && topics.length == 1) {
- PlatformUI.getWorkbench().getHelpSystem().displayHelpResource(topics[0]
- .getHref());
- } else {
- PlatformUI.getWorkbench().getHelpSystem().displayHelp(_helpContextId);
- }
- }
- }
- });
- }
-
- Composite client = this._toolkit.createComposite(getSection());
- createClient(client, this._toolkit);
- getSection().setClient(client);
- }
-
- private Composite createClient(Composite container, FormToolkit factory) {
- TableWrapLayout layout = new TableWrapLayout();
- layout.numColumns = 2;
- layout.makeColumnsEqualWidth = false;
- layout.horizontalSpacing = 20;
- layout.verticalSpacing = 20;
- container.setLayout(layout);
-
- IConfigurationElement element = getExtensions();
-
- if (element != null) {
- setPageDetails(element);
-
- IConfigurationElement[] children = element.getChildren();
- for (int ii = 0; ii < children.length; ii++) {
- processItems(container, factory, children[ii]);
- }
- } else {
- setText(Messages.IntroductionSection_noIntroTitle);
-
- setDescription(Messages.IntroductionSection_noIntroDescription);
- }
-
- factory.paintBordersFor(container);
- PlatformUI.getWorkbench().getHelpSystem().setHelp(container, _helpContextId);
- return container;
- }
-
- /**
- * set the page details from the extensionpoint
- *
- * @param element
- */
- private void setPageDetails(IConfigurationElement element) {
- setText(element.getAttribute("name")); //$NON-NLS-1$
- setDescription(element.getAttribute("description")); //$NON-NLS-1$
- }
-
- /**
- * add the extension elements to the page
- *
- * @param parent
- * @param toolkit_
- * @param element
- */
- private void processItems(Composite parent, FormToolkit toolkit_,
- IConfigurationElement element) {
- String hyperlink = element.getAttribute("hyperlink"); //$NON-NLS-1$
- String iconPath = element.getAttribute("icon"); //$NON-NLS-1$
- String text = element.getAttribute("text"); //$NON-NLS-1$
- String heading = element.getAttribute("heading"); //$NON-NLS-1$
- String action = element.getAttribute("hyperlinkaction"); //$NON-NLS-1$
- //String actionparameters = element.getAttribute("actionparameters"); //$NON-NLS-1$
-
- if (iconPath != null && iconPath.length() > 0) {
- // add an icon to the page
- String iconName;
- if (iconPath.indexOf(IPath.SEPARATOR) != -1) {
- iconName = new Path(iconPath).lastSegment();
- } else {
- iconName = iconPath;
- }
-
- ImageDescriptor imageDescriptor = AbstractUIPlugin
- .imageDescriptorFromPlugin(
- element.getDeclaringExtension()
- .getContributor().getName(), iconPath);
-
- if (imageDescriptor != null)
- {
- ImageRegistry imageRegistry =
- JSFUICommonPlugin.getDefault().getImageRegistry();
-
-
- Image image = imageRegistry.get(iconName);
-
- if (image == null)
- {
- image = imageDescriptor.createImage();
-
- if (image != null)
- {
- imageRegistry.put(iconName, image);
- }
- else
- {
- image = ImageDescriptor.getMissingImageDescriptor().createImage();
- }
- }
-
- if (image != null)
- {
- ImageContainer img = new ImageContainer(parent);
- img.setImage(image);
- TableWrapData td = new TableWrapData();
- td.rowspan = 2;
- img.setLayoutData(td);
- }
- else
- {
- JSFUICommonPlugin.getLogger(this.getClass()).error(new Throwable("Image not created for "+element)); //$NON-NLS-1$
- }
- }
- else
- {
- JSFUICommonPlugin.getLogger(this.getClass()).error(new Throwable("Image Descriptor not found for "+element)); //$NON-NLS-1$
- }
- }
-
- if (heading != null && heading.length() > 0) {
- // add a header
- Label lbl = toolkit_.createLabel(parent, heading);
- lbl.setFont(JFaceResources.getHeaderFont());
- }
-
- if (hyperlink != null && hyperlink.length() > 0) {
- Hyperlink hypr = toolkit_.createHyperlink(parent, hyperlink,
- SWT.NONE);
- if (action != null && action.length() > 0) {
- try {
- final IAction thisAction = (IAction) element
- .createExecutableExtension("hyperlinkaction"); //$NON-NLS-1$
- hypr.addHyperlinkListener(new HyperlinkAdapter() {
- public void linkActivated(HyperlinkEvent e) {
- thisAction.run();
- }
- });
- } catch (Exception ee) {
- // log.IntroductionSection.action.error=Failed to launch the
- // link {0}.
- _log.error("log.IntroductionSection.action.error", //$NON-NLS-1$
- hyperlink, ee);
- JSFUICommonPlugin.getAlerts().detailError(hyperlink,
- "log.IntroductionSection.action.error", hyperlink, //$NON-NLS-1$
- ee);
- }
- }
- }
-
- if (text != null && text.length() > 0) {
- FormText form = toolkit_.createFormText(parent, false);
- form.setText(text, false, false);
- }
- }
-
- /**
- * Get the extension elements for the Introduction pages
- */
- private IConfigurationElement getExtensions() {
- // find all service editor page extensions
- IConfigurationElement element = null;
-
- // find all service editor parameter dialog extensions
- IConfigurationElement[] elements = Platform
- .getExtensionRegistry()
- .getConfigurationElementsFor(
- "org.eclipse.jst.jsf.common.ui.introductionPage"); //$NON-NLS-1$
- if (elements.length > 0) {
- for (int ii = 0; ii < elements.length; ii++) {
- // get extensions for this dialog
- // String extPluginId =
- // elements[ii].getDeclaringExtension().getNamespace();
- String editorId1 = elements[ii].getDeclaringExtension()
- .getSimpleIdentifier();
-
- // see if we have any contributuins of dialogs
- if (this._editorId.equals(editorId1)) {
- element = elements[ii];
- break;
- }
- }
- }
- return element;
- }
-
- private void setText(String text) {
- getSection().setText(text);
- }
-
- private void setDescription(String text) {
- getSection().setDescription(text);
- }
-
- /**
- * Set this section's layout data
- * @param layoutData
- */
- public void setLayoutData(Object layoutData) {
- getSection().setLayoutData(layoutData);
- }
-} \ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/Messages.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/Messages.java
deleted file mode 100644
index b8772361b..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/Messages.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.eclipse.jst.jsf.common.ui.internal.guiutils;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * String resource handler.
- *
- * @author Debajit Adhikary - Oracle
- */
-
-public class Messages extends NLS {
-
- private static final String BUNDLE_NAME = "org.eclipse.jst.jsf.common.ui.internal.guiutils.messages"; //$NON-NLS-1$
-
- /**
- * See messages.properties.
- */
- public static String IntroductionSection_noIntroDescription;
-
- /**
- * See messages.properties.
- */
- public static String IntroductionSection_noIntroTitle;
-
- /**
- * See messages.properties.
- */
- public static String BrowserWindow_loading;
-
-
- static {
- // initialize resource bundle
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/OverviewSection.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/OverviewSection.java
deleted file mode 100644
index 4654c40f3..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/OverviewSection.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.guiutils;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.help.HelpSystem;
-import org.eclipse.help.IContext;
-import org.eclipse.help.IHelpResource;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.jst.jsf.common.ui.internal.logging.Logger;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.SectionPart;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-
-
-/**
- * @author jchoi
- * @version
- */
-public class OverviewSection extends SectionPart {
-
- private static final String HELP_IMAGE_FILE = "help.gif"; //$NON-NLS-1$
-
- private static Logger log = JSFUICommonPlugin.getLogger(OverviewSection.class);
-
- private String editorId;
-
- private FormToolkit toolkit;
-
- private ImageHyperlink helpImage;
-
- private Composite textClient;
-
- private String helpContextId;
-
- private String helpTooltip;
-
- /**
- * @param editorId
- * @param managedForm
- * @param toolkit
- */
- public OverviewSection(String editorId, IManagedForm managedForm,
- FormToolkit toolkit) {
- this(editorId, managedForm, toolkit, null, null);
-
- }
-
- /**
- * Constructor with help option.
- *
- * @param editorId
- * id of the editor this page is for.
- * @param managedForm
- * @param toolkit
- * @param helpContextId
- * @param helpTooltip
- */
- public OverviewSection(String editorId, IManagedForm managedForm,
- FormToolkit toolkit, String helpContextId, String helpTooltip) {
- super(managedForm.getForm().getBody(), toolkit,
- ExpandableComposite.TITLE_BAR | Section.DESCRIPTION);
- super.initialize(managedForm);
- this.editorId = editorId;
- this.toolkit = toolkit;
- this.helpContextId = helpContextId;
- this.helpTooltip = helpTooltip;
-
- this.textClient = this.toolkit.createComposite(getSection(), SWT.NONE);
- this.textClient.setSize(32, 16);
-
- init();
-
- Composite client = this.toolkit.createComposite(getSection());
- //createClient(client, this.toolkit);
- getSection().setClient(client);
- }
-
- /**
- * @param editor
- * @param managedForm
- * @param toolkit
- * @param style
- */
- public OverviewSection(FormEditor editor, IManagedForm managedForm,
- FormToolkit toolkit, int style) {
- super(managedForm.getForm().getBody(), toolkit,
- ExpandableComposite.TITLE_BAR | style);
- super.initialize(managedForm);
- this.toolkit = toolkit;
-
- this.textClient = this.toolkit.createComposite(getSection(), SWT.NONE);
- this.textClient.setSize(32, 16);
-
- init();
- }
-
- /**
- * @param editor
- * @param managedForm
- * @param toolkit
- * @param style
- * @param helpContextId
- * @param helpTooltip
- */
- public OverviewSection(FormEditor editor, IManagedForm managedForm,
- FormToolkit toolkit, int style, String helpContextId,
- String helpTooltip) {
- super(managedForm.getForm().getBody(), toolkit,
- ExpandableComposite.TITLE_BAR | style);
- super.initialize(managedForm);
- this.toolkit = toolkit;
-
- this.textClient = toolkit.createComposite(getSection(), SWT.NONE);
- this.textClient.setSize(32, 16);
- this.helpContextId = helpContextId;
- this.helpTooltip = helpTooltip;
- init();
- }
-
- /**
- *
- */
- public void initialize() {
- Composite client = toolkit.createComposite(getSection());
- //createClient(client, toolkit);
- getSection().setClient(client);
- }
-
- private void init() {
- RowLayout rowLayout = new RowLayout();
- rowLayout.wrap = false;
- rowLayout.pack = false;
- rowLayout.justify = true;
- rowLayout.type = SWT.HORIZONTAL;
- rowLayout.marginLeft = 0;
- rowLayout.marginTop = 0;
- rowLayout.marginRight = 0;
- rowLayout.marginBottom = 0;
- rowLayout.spacing = 0;
- textClient.setLayout(rowLayout);
-
- helpImage = new ImageHyperlink(textClient, SWT.NONE);
- toolkit.adapt(helpImage, true, true);
- toolkit.adapt(textClient, true, true);
- helpImage.setImage(JSFUICommonPlugin.getDefault().getImage(HELP_IMAGE_FILE));
- getSection().setTextClient(textClient);
- if (helpTooltip != null) {
- helpImage.setToolTipText(helpTooltip);
- }
- helpImage.setBackground(getSection().getTitleBarGradientBackground());
- helpImage.addHyperlinkListener(new HyperlinkAdapter() {
- public void linkActivated(HyperlinkEvent e) {
- IContext context = HelpSystem.getContext(helpContextId);
- if (context != null) {
- IHelpResource[] topics = context.getRelatedTopics();
- if (topics != null && topics.length == 1) {
- PlatformUI.getWorkbench().getHelpSystem().displayHelpResource(topics[0].getHref());
- } else {
- PlatformUI.getWorkbench().getHelpSystem().displayHelp(helpContextId);
- }
- }
- }
- });
-
- /*
- * Composite client = _toolkit.createComposite(getSection());
- * createClient(client, _toolkit); getSection().setClient(client);
- */
- }
-
- /**
- * set the page details from the extensionpoint
- *
- * @param element
- */
- protected void setPageDetails(IConfigurationElement element) {
- setText(element.getAttribute("name")); //$NON-NLS-1$
- setDescription(element.getAttribute("description")); //$NON-NLS-1$
- }
-
- /**
- * add the extension elements to the page
- *
- * @param parent
- * @param toolkit_
- * @param element
- */
- public void processItems(Composite parent, FormToolkit toolkit_,
- IConfigurationElement element) {
- String hyperlink = element.getAttribute("hyperlink"); //$NON-NLS-1$
- String text = element.getAttribute("text"); //$NON-NLS-1$
- String action = element.getAttribute("hyperlinkaction"); //$NON-NLS-1$
- //String actionparameters = element.getAttribute("actionparameters"); //$NON-NLS-1$
-
- if (hyperlink != null && hyperlink.length() > 0) {
- Hyperlink hypr = toolkit_.createHyperlink(parent, hyperlink,
- SWT.NONE);
- if (action != null && action.length() > 0) {
- try {
- final IAction thisAction = (IAction) element
- .createExecutableExtension("hyperlinkaction"); //$NON-NLS-1$
- hypr.addHyperlinkListener(new HyperlinkAdapter() {
- public void linkActivated(HyperlinkEvent e) {
- thisAction.run();
- }
- });
- } catch (Exception ee) {
- // log.IntroductionSection.action.error=Failed to launch the
- // link {0}.
- log
- .error("log.OverviewSection.action.error", //$NON-NLS-1$
- hyperlink, ee);
- JSFUICommonPlugin.getAlerts().detailError(hyperlink,
- "log.OverviewSection.action.error", hyperlink, ee); //$NON-NLS-1$
- }
- }
- }
-
- if (text != null && text.length() > 0) {
- FormText form = toolkit_.createFormText(parent, false);
- form.setText(text, false, false);
- }
- }
-
- /**
- * Get the extension elements for the Introduction pages
- * @param extensionPoint
- * @return the configuration element
- */
- public IConfigurationElement getExtensions(String extensionPoint) {
- // find all service editor page extensions
- IConfigurationElement element = null;
-
- // find all service editor parameter dialog extensions
- IConfigurationElement[] elements = Platform.getExtensionRegistry()
- .getConfigurationElementsFor(extensionPoint);
- if (elements.length > 0) {
- for (int ii = 0; ii < elements.length; ii++) {
- // get extensions for this dialog
- // String extPluginId =
- // elements[ii].getDeclaringExtension().getNamespace();
- String anEditorId = elements[ii].getDeclaringExtension()
- .getSimpleIdentifier();
-
- // see if we have any contributuins of dialogs
- if (this.editorId.equals(anEditorId)) {
- element = elements[ii];
- break;
- }
- }
- }
- return element;
- }
-
- private void setText(String text) {
- getSection().setText(text);
- }
-
- private void setDescription(String text) {
- getSection().setDescription(text);
-
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/SWTUtils.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/SWTUtils.java
deleted file mode 100644
index 862b26bc2..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/SWTUtils.java
+++ /dev/null
@@ -1,1032 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.guiutils;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * This utility class provides convenience methods in creating controls on
- * preference pages.
- *
- * @author mengbo
- */
-public class SWTUtils {
- // Defaults of controls
- private static final int DEFAULT_BUTTON_WIDTH = 70;
-
- private static final int DEFAULT_COMBO_WIDTH = 100;
-
- private static final int DEFAULT_TEXTBOX_WIDTH = 100;
-
- private static final int DEFAULT_RADIO_FILL = GridData.HORIZONTAL_ALIGN_BEGINNING
- | GridData.VERTICAL_ALIGN_CENTER;
-
- /**
- * Creates a new checkbox and sets the default layout data.
- *
- * @param parent
- * the composite in which to create the checkbox
- * @return the new checkbox
- */
- public static Button createCheckBox(Composite parent) {
- return createCheckBox(parent, null, 1, 0);
- }
-
- /**
- * Creates a new checkbox and sets the default layout data.
- *
- * @param parent
- * the composite in which to create the checkbox
- * @param label
- * the string to set into the checkbox
- * @param numColumns
- * the number of columns the new checkbox is to occupy
- * @return the new checkbox
- */
- public static Button createCheckBox(Composite parent, String label,
- int numColumns) {
- return createCheckBox(parent, label, numColumns, 0);
- }
-
- /**
- * Creates a new checkbox and sets the default layout data.
- *
- * @param parent
- * the composite in which to create the checkbox
- * @param label
- * the string to set into the checkbox
- * @param numColumns
- * the number of columns the new checkbox is to occupy
- * @param indent
- * the number of pixels to indent from the left
- * @return the new checkbox
- */
- public static Button createCheckBox(Composite parent, String label,
- int numColumns, int indent) {
- Button button = new Button(parent, SWT.CHECK | SWT.LEFT);
- if (label == null) {
- button.setAlignment(SWT.CENTER);
- }
- GridData data = new GridData(GridData.FILL);
- data.horizontalSpan = numColumns;
- data.horizontalIndent = indent;
- button.setLayoutData(data);
- if (label != null) {
- button.setText(label);
- }
- return button;
- }
-
- /**
- * Creates a combo box and sets the default layout data.
- *
- * @param parent
- * the composite in which to create the combo
- * @param items
- * the items in the combo
- * @param numColumns
- * the number of columns the new combo is to occupy
- * @return the new combo box
- */
- public static Combo createCombo(Composite parent, String[] items,
- int numColumns) {
- return createCombo(parent, items, numColumns, DEFAULT_COMBO_WIDTH);
- }
-
- /**
- * Creates a combo box and sets the default layout data.
- *
- * @param parent
- * the composite in which to create the combo
- * @param tokenString
- * a tokenized string that will be split into the fields.
- * @param numColumns
- * the number of columns the new combo is to occupy
- * @return the new combo box
- */
- public static Combo createCombo(Composite parent, String tokenString,
- int numColumns) {
- return createCombo(parent, getTokenNames(tokenString), numColumns,
- DEFAULT_COMBO_WIDTH);
- }
-
- /**
- * Creates a combo box and sets the default layout data.
- *
- * @param parent
- * the composite in which to create the combo
- * @param tokenString
- * a tokenized string that will be split into the fields.
- * @param numColumns
- * the number of columns the new combo is to occupy
- * @param minWidth
- * minimum width of combo box in pixels
- * @return the new combo box
- */
- public static Combo createCombo(Composite parent, String tokenString,
- int numColumns, int minWidth) {
- return createCombo(parent, getTokenNames(tokenString), numColumns,
- minWidth);
- }
-
- /**
- * Creates a combo box and sets the default layout data.
- *
- * @param parent
- * the composite in which to create the combo
- * @param items
- * the items in the combo
- * @param numColumns
- * the number of columns the new combo is to occupy
- * @param minWidth
- * minimum width of combo box in pixels
- * @return the new combo box
- */
- public static Combo createCombo(Composite parent, String[] items,
- int numColumns, int minWidth) {
- return createCombo(parent, items, numColumns, minWidth, false);
- }
-
- /**
- * Creates a combo box and sets the default layout data.
- *
- * @param parent
- * the composite in which to create the combo
- * @param tokenString
- * @param numColumns
- * the number of columns the new combo is to occupy
- * @param minWidth
- * minimum width of combo box in pixels
- * @param editable
- * whether the items in the combo is editable
- * @return the new combo box
- */
- public static Combo createCombo(Composite parent, String tokenString,
- int numColumns, int minWidth, boolean editable) {
- return createCombo(parent, getTokenNames(tokenString), numColumns,
- minWidth, editable);
- }
-
- /**
- * Creates a combo box and sets the default layout data.
- *
- * @param parent
- * the composite in which to create the combo
- * @param items
- * the items in the combo
- * @param numColumns
- * the number of columns the new combo is to occupy
- * @param minWidth
- * minimum width of combo box in pixels
- * @param editable
- * whether the items in the combo is editable
- * @return the new combo box
- */
- public static Combo createCombo(Composite parent, String[] items,
- int numColumns, int minWidth, boolean editable) {
- Combo combo;
- GridData data;
- if (editable) {
- combo = new Combo(parent, SWT.DROP_DOWN);
- data = new GridData(GridData.FILL_HORIZONTAL);
- } else {
- combo = new Combo(parent, SWT.DROP_DOWN | SWT.READ_ONLY);
- data = new GridData(GridData.FILL);
- }
- data.horizontalSpan = numColumns;
- data.widthHint = minWidth;
- combo.setLayoutData(data);
- combo.setItems(items);
- return combo;
- }
-
- /**
- * Creates composite control and sets the default layout data.
- *
- * @param parent
- * the parent of the new composite
- * @param numColumns
- * the number of columns for the new composite
- * @return the newly-created coposite
- */
- public static Composite createComposite(Composite parent, int numColumns) {
- return createComposite(parent, numColumns, -1, -1,
- GridData.FILL_HORIZONTAL, -1, -1, -1);
- }
-
- /**
- * Creates composite control and sets the default layout data.
- *
- * @param parent
- * the parent of the new composite
- * @param numColumns
- * the number of columns for the new composite
- * @param verticalSpacing
- * the spacing between rows.
- * @param horizontalSpan
- * the span for this new composite over the original composite.
- * @return the newly-created coposite
- */
- public static Composite createComposite(Composite parent, int numColumns,
- int verticalSpacing, int horizontalSpan) {
- return createComposite(parent, numColumns, verticalSpacing,
- horizontalSpan, GridData.FILL_HORIZONTAL, -1, -1, -1);
- }
-
- /**
- * Creates composite control and sets the default layout data.
- *
- * @param parent
- * the parent of the new composite
- * @param numColumns
- * the number of columns for the new composite
- * @param verticalSpacing
- * the spacing between rows.
- * @param horizontalSpan
- * the span for this new composite over the original composite.
- * @param gridDataFill
- * the fill to use for this composite.
- * @return the newly-created coposite
- */
- public static Composite createComposite(Composite parent, int numColumns,
- int verticalSpacing, int horizontalSpan, int gridDataFill) {
- return createComposite(parent, numColumns, verticalSpacing,
- horizontalSpan, gridDataFill, -1, -1, -1);
- }
-
- /**
- * Creates composite control and sets the default layout data.
- *
- * @param parent
- * the parent of the new composite
- * @param numColumns
- * the number of columns for the new composite
- * @param verticalSpacing
- * the spacing between rows.
- * @param horizontalSpan
- * the span for this new composite over the original composite.
- * @param gridDataFill
- * the fill to use for this composite.
- * @param horizontalSpacing
- * the spacing between objects.
- * @param marginWidth
- * the spacing at start and end of composite.
- * @param marginHeight
- * the spacing above and below composite.
- * @return the newly-created coposite
- */
- public static Composite createComposite(Composite parent, int numColumns,
- int verticalSpacing, int horizontalSpan, int gridDataFill,
- int horizontalSpacing, int marginWidth, int marginHeight) {
- Composite composite = new Composite(parent, SWT.NULL);
- GridLayout layout = new GridLayout();
- layout.numColumns = numColumns;
- if (verticalSpacing >= 0) {
- layout.verticalSpacing = verticalSpacing;
- }
- if (horizontalSpacing >= 0) {
- layout.horizontalSpacing = horizontalSpacing;
- }
- if (marginWidth >= 0) {
- layout.marginWidth = marginWidth;
- }
- if (marginHeight >= 0) {
- layout.marginHeight = marginHeight;
- }
- composite.setLayout(layout);
- GridData gd = new GridData(gridDataFill);
- if (horizontalSpan > 0) {
- gd.horizontalSpan = horizontalSpan;
- }
- composite.setLayoutData(gd);
-
- return composite;
- }
-
- /**
- * Utility method that creates a group and sets the default layout data.
- *
- * @param parent
- * the parent for the new group
- * @param title
- * the label for the new group
- * @param numColumns
- * the number of columns for the new group
- * @return the newly created group
- */
- public static Group createGroup(Composite parent, String title,
- int numColumns) {
- return createGroup(parent, title, numColumns, -1,
- GridData.FILL_HORIZONTAL);
- }
-
- /**
- * Utility method that creates a group and sets the default layout data.
- *
- * @param parent
- * the parent for the new group
- * @param title
- * the label for the new group
- * @param numColumns
- * the number of columns for the new group
- * @param horizontalSpan
- * the number of columns this group should span on the parent
- * composite.
- * @param gridDataFill
- * the fill style of the new group -- set to for filling just
- * around the object: GridData.BEGINNING | GridData.CENTER
- * @return the newly created group
- */
- public static Group createGroup(Composite parent, String title,
- int numColumns, int horizontalSpan, int gridDataFill) {
- Group group = new Group(parent, SWT.SHADOW_ETCHED_IN);
- GridLayout layout = new GridLayout();
- layout.numColumns = numColumns;
- group.setLayout(layout);
- GridData data = new GridData(gridDataFill);
-
- if (horizontalSpan > 0) {
- data.horizontalSpan = horizontalSpan;
- }
- group.setLayoutData(data);
- group.setText(title);
- return group;
- }
-
- /**
- * Utility method that creates a label instance and sets the default layout
- * data.
- *
- * @param parent
- * the parent for the new label
- * @param text
- * the text for the new label
- * @param numColumns
- * the number of columns for the new composite
- * @return the new label
- */
- public static Label createLabel(Composite parent, String text,
- int numColumns) {
- return createLabel(parent, text, numColumns, 0);
- }
-
- /**
- * Utility method that creates a label instance and sets the default layout
- * data.
- *
- * @param parent
- * the parent for the new label
- * @param text
- * the text for the new label
- * @param numColumns
- * the number of columns for the new composite
- * @param indent
- * number of pixels to indent from the left
- * @return the new label
- */
- public static Label createLabel(Composite parent, String text,
- int numColumns, int indent) {
- Label label = new Label(parent, SWT.LEFT);
- GridData data = new GridData();
- data.horizontalSpan = numColumns;
- data.horizontalAlignment = GridData.FILL;
- data.horizontalIndent = indent;
- label.setLayoutData(data);
- label.setText(text);
- return label;
- }
-
- /**
- * Create a image label for sticking in a composite. The backgroud color is
- * optional. Because images can have "transparent" natures, you might want
- * to say the background is something other than the defaults composites
- * background.
- *
- * NOTE: the caller is responsible for cleanup of the image and color
- * objects.
- *
- * @param parent
- * the parent for the new label
- * @param theImage
- * the image for the new label
- * @param numColumns
- * the number of columns for the new composite
- * @param background
- * pass null to use the composites background.
- * @return the new label
- */
- public static Label createLabelImage(Composite parent, Image theImage,
- int numColumns, Color background) {
- Label label = new Label(parent, SWT.LEFT);
- GridData data = new GridData();
- data.horizontalSpan = numColumns;
- data.horizontalAlignment = GridData.FILL;
- label.setLayoutData(data);
- if (background != null) {
- label.setBackground(background);
- }
- label.setImage(theImage);
- return label;
- }
-
- /**
- * Utility method that creates a push button instance and sets the default
- * layout data.
- *
- * @param parent
- * the parent for the new button
- * @param label
- * the label for the new button
- * @return the newly-created button
- */
- public static Button createPushButton(Composite parent, String label) {
- return createPushButton(parent, label, DEFAULT_BUTTON_WIDTH);
- }
-
- /**
- * Utility method that creates a push button instance and sets the default
- * layout data.
- *
- * @param parent
- * the parent for the new button
- * @param label
- * the label for the new button
- * @param widthHint
- * use this width for the button.
- * @return the newly-created button
- */
- public static Button createPushButton(Composite parent, String label,
- int widthHint) {
- Button button = new Button(parent, SWT.PUSH);
- GridData data = new GridData();
- data.horizontalAlignment = GridData.FILL_HORIZONTAL;
- data.widthHint = widthHint;
- button.setLayoutData(data);
- button.setText(label);
- return button;
- }
-
- /**
- * Utility method that creates a push button instance and sets the default
- * layout data.
- *
- * @param parent
- * the parent for the new button
- * @param theImage
- * the label for the new button
- * @param widthHint
- * use this width for the button.
- * @return the newly-created button
- */
- public static Button createPushButton(Composite parent, Image theImage,
- int widthHint) {
- Button button = new Button(parent, SWT.PUSH);
- GridData data = new GridData();
- data.horizontalAlignment = GridData.FILL_HORIZONTAL;
- data.widthHint = widthHint;
- button.setLayoutData(data);
- button.setImage(theImage);
- button.setAlignment(SWT.CENTER);
- return button;
- }
-
- /**
- * Utility method that creates a radio button instance and sets the default
- * layout data.
- *
- * @param parent
- * the parent for the new button
- * @param label
- * the label for the new button
- * @return the newly-created button
- */
- public static Button createRadioButton(Composite parent, String label) {
- return createRadioButton(parent, label, DEFAULT_RADIO_FILL);
- }
-
- /**
- * Utility method that creates a radio button instance and sets the default
- * layout data.
- *
- * @param parent
- * the parent for the new button
- * @param label
- * the label for the new button
- * @param gridDataFill
- * @return the newly-created button
- */
- public static Button createRadioButton(Composite parent, String label,
- int gridDataFill) {
- return createRadioButton(parent, label, gridDataFill, 1);
- }
-
- /**
- * Utility method that creates a radio button instance and sets the default
- * layout data.
- *
- * @param parent
- * the parent for the new button
- * @param label
- * the label for the new button
- * @param gridDataFill
- * @param horizontalSpan
- * number of columns occupied by button
- * @return the newly-created button
- */
- public static Button createRadioButton(Composite parent, String label,
- int gridDataFill, int horizontalSpan) {
- Button button = new Button(parent, SWT.RADIO | SWT.LEFT);
- GridData data = new GridData(gridDataFill);
- data.horizontalSpan = horizontalSpan;
- button.setLayoutData(data);
- button.setText(label);
- return button;
- }
-
- /**
- * Utility method that creates an empty line
- *
- * @param parent
- * the parent for the new label
- * @param numColumns
- * the number of columns for the new composite
- */
- public static void createSpacer(Composite parent, int numColumns) {
- createSpacer(parent, numColumns, 0);
- }
-
- /**
- * Utility method that creates an empty line
- *
- * @param parent
- * the parent for the new label
- * @param numColumns
- * the number of columns for the new composite
- * @param minWidth
- * minimum width of spacer
- */
- public static void createSpacer(Composite parent, int numColumns,
- int minWidth) {
- Label label = new Label(parent, SWT.NONE);
- GridData data = new GridData();
- data.horizontalSpan = numColumns;
- data.widthHint = minWidth;
- label.setLayoutData(data);
- }
-
- /**
- * Create a separator that goes across the entire page
- *
- * @param parent
- * the parent for the new label
- * @param numColumns
- * the number of columns for the new composite
- */
- public static void createSeparator(Composite parent, int numColumns) {
- Label separator = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
- GridData data = new GridData();
- data.horizontalSpan = numColumns;
- data.horizontalAlignment = GridData.FILL;
- data.grabExcessHorizontalSpace = true;
- separator.setLayoutData(data);
- }
-
- /**
- * Create a table from a Composite object
- *
- * @param composite
- * the Composite this table is to be created from
- * @param tokenString
- * A string containing names of the columns in the order that
- * they should be displayed in the table with each column
- * separated by a comma(',') or null if no columns need to be
- * created.
- * @param tablewidth
- * the minimum width for the table
- * @param tableHeight
- * @return the new table
- */
- public static Table createTable(Composite composite, String tokenString,
- int tablewidth, int tableHeight) {
- // SINGLE, MULTI, CHECK, FULL_SELECTION, HIDE_SELECTION
- int style = SWT.V_SCROLL | SWT.H_SCROLL | SWT.SINGLE | SWT.BORDER
- | SWT.FULL_SELECTION;
- Table table = new Table(composite, style);
- GridData gridData = new GridData(GridData.FILL_BOTH);
- if (tablewidth > 0) {
- gridData.widthHint = tablewidth;
- }
- if (tableHeight > 0) {
- gridData.heightHint = tableHeight;
- }
- table.setLayoutData(gridData);
- table.setHeaderVisible(true);
- table.setLinesVisible(true);
-
- if (tokenString != null) {
- String[] columns = getTokenNames(tokenString);
-
- int columnSize = 50;
- if (tablewidth > 0) {
- columnSize = tablewidth / columns.length;
- }
- for (int ii = 0; ii < columns.length; ii++) {
- /*(void)*/ createTableColumn(table, columns[ii], ii,
- columnSize);
- }
- }
-
- return table;
- }
-
- /**
- * Create a table from a Composite object
- *
- * @param composite
- * the Composite this table is to be created from
- * @param columns
- * A string array containing names of the columns in the order
- * that they should be displayed in the table, or null if no
- * columns need to be created.
- * @param tablewidth
- * the minimum width for the table
- * @return the new table
- */
- public static Table createTable(Composite composite, String[] columns,
- int tablewidth) {
- int style = SWT.BORDER | SWT.FULL_SELECTION;
- Table table = new Table(composite, style);
- GridData gridData = new GridData(GridData.FILL_BOTH);
- gridData.widthHint = tablewidth;
- table.setLayoutData(gridData);
- table.setHeaderVisible(true);
- table.setLinesVisible(true);
-
- if (columns != null) {
- for (int i = 0; i < columns.length; i++) {
- /*(void)*/ createTableColumn(table, columns[i], i);
- }
- }
-
- return table;
- }
-
- /**
- * Create a table column
- *
- * @param parent
- * the table that contains this column
- * @param name
- * name of this column
- * @param index
- * the column within the parent composite
- * @return the new table column
- */
- public static TableColumn createTableColumn(Table parent, String name,
- int index) {
- TableColumn column = new TableColumn(parent, SWT.LEFT, index);
- column.setText(name);
- return column;
- }
-
- /**
- * Create a table column with the image and the width of the column is set
- * to the image width.
- *
- * @param parent
- * the table that contains this column
- * @param image
- * iamge for this column
- * @param index
- * @return the new table column
- */
- public static TableColumn createTableColumn(Table parent, Image image,
- int index) {
- TableColumn column = new TableColumn(parent, SWT.LEFT, index);
- column.setImage(image);
- column.setWidth(image.getBounds().width);
- column.setResizable(false);
- return column;
- }
-
- /**
- * Create a table column
- *
- * @param parent
- * the table that contains this column
- * @param name
- * name of this column
- * @param index
- * the column within the parent composite
- * @param tablewidth
- * the width for the column
- * @return the new table column
- */
- public static TableColumn createTableColumn(Table parent, String name,
- int index, int tablewidth) {
- TableColumn column = new TableColumn(parent, SWT.LEFT, index);
- column.setText(name);
- column.setWidth(tablewidth);
- return column;
- }
-
- /**
- * Create a text field
- *
- * @param parent
- * the parent of the new text field
- * @return the new text field
- */
- public static Text createTextBox(Composite parent) {
- return createTextBox(parent, 1, DEFAULT_TEXTBOX_WIDTH);
- }
-
- /**
- * Create a text field
- *
- * @param parent
- * the parent of the new text field
- * @param text
- * @return the new text field
- */
- public static Text createTextBox(Composite parent, String text) {
- Text textbox = createTextBox(parent, 1);
- textbox.setText(text);
- return textbox;
- }
-
- /**
- * Create a text field
- *
- * @param parent
- * the parent of the new text field
- * @param numColumns
- * number of columns the text box is to occupy
- * @return the new text field
- */
- public static Text createTextBox(Composite parent, int numColumns) {
- return createTextBox(parent, numColumns, DEFAULT_TEXTBOX_WIDTH);
- }
-
- /**
- * Create a text field
- *
- * @param parent
- * the parent of the new text field
- * @param numColumns
- * number of columns the text box is to occupy
- * @param minWidth
- * minimum width of text field
- * @return the new text field
- */
- public static Text createTextBox(Composite parent, int numColumns,
- int minWidth) {
- return createTextBox(parent, numColumns, minWidth, SWT.DEFAULT);
- }
-
- /**
- * Create a text field
- *
- * @param parent
- * the parent of the new text field
- * @param numColumns
- * number of columns the text box is to occupy
- * @param minWidth
- * minimum width of text field
- * @param minHeight
- * @return the new text field
- */
- public static Text createTextBox(Composite parent, int numColumns,
- int minWidth, int minHeight) {
- Text text = new Text(parent, SWT.SINGLE | SWT.BORDER);
- GridData data = new GridData(GridData.FILL);
- data.horizontalSpan = numColumns;
- data.widthHint = minWidth;
- data.heightHint = minHeight;
- text.setLayoutData(data);
- return text;
- }
-
- /**
- * Create a text field that is scrollable.
- *
- * @param parent
- * the parent of the new text field
- * @param numColumns
- * number of columns the text box is to occupy
- * @param minWidth
- * minimum width of text field
- * @param minHeight
- * minimum height of text field
- * @return the new text field
- */
- public static Text createTextBoxScrollable(Composite parent,
- int numColumns, int minWidth, int minHeight) {
- Text text = new Text(parent, SWT.BORDER | SWT.V_SCROLL | SWT.WRAP);
- GridData data = new GridData((minWidth > 0) ? GridData.FILL
- : GridData.FILL_HORIZONTAL);
- data.horizontalSpan = numColumns;
- if (minWidth > 0) {
- data.widthHint = minWidth;
- }
- data.heightHint = minHeight;
-
- text.setLayoutData(data);
- return text;
- }
-
- /**
- * Create a list with the items listed in it.
- *
- * @param parent
- * the parent of the new text field
- * @param numColumns
- * number of columns the text box is to occupy
- * @param minWidth
- * minimum width of text field
- * @param minHeight
- * minimum height of text field
- * @param items
- * the items in the list
- * @return the new list
- */
- public static List createList(Composite parent, int numColumns,
- int minWidth, int minHeight, String[] items) {
- return createList(parent, numColumns, minWidth, minHeight, items, true);
- }
-
- /**
- * Create a list with the items listed in it.
- *
- * @param parent
- * the parent of the new list box
- * @param numColumns
- * number of columns the list box is to occupy
- * @param minWidth
- * minimum width of list box
- * @param minHeight
- * minimum height of list box
- * @param items
- * the items in the list
- * @param bmulti
- * whether multiple item selection is allowed
- * @return the new list
- */
- public static List createList(Composite parent, int numColumns,
- int minWidth, int minHeight, String[] items, boolean bmulti) {
- return createList(parent, numColumns, minWidth, minHeight, items,
- bmulti, 1);
- }
-
- /**
- * Create a list with the items listed in it.
- *
- * @param parent
- * the parent of the new list box
- * @param numColumns
- * number of columns the list box is to occupy
- * @param minWidth
- * minimum width of list box
- * @param minHeight
- * minimum height of list box
- * @param items
- * the items in the list
- * @param bmulti
- * whether multiple item selection is allowed
- * @param verticalSpan
- * the number of rows the list box is to occupy
- * @return the new list
- */
- public static List createList(Composite parent, int numColumns,
- int minWidth, int minHeight, String[] items, boolean bmulti,
- int verticalSpan) {
- List theList;
- if (bmulti)
- theList = new List(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI
- | SWT.BORDER);
- else
- theList = new List(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.SINGLE
- | SWT.BORDER);
- GridData data = new GridData(GridData.FILL_HORIZONTAL
- | GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_VERTICAL);
- data.horizontalSpan = numColumns;
- data.widthHint = minWidth;
- data.heightHint = minHeight;
- data.verticalSpan = verticalSpan;
- theList.setLayoutData(data);
- if (items != null) {
- theList.setItems(items);
- }
-
- return theList;
- }
-
- /**
- * Computes the size of the composite inside the scroll area so that scroll
- * bars show up correctly.
- *
- * @param parentComposite
- * @param childComposite
- */
- public static void computeScrollArea(ScrolledComposite parentComposite,
- Composite childComposite) {
- // Point pt = childComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- // childComposite.setSize(pt);
-
- Point pt = childComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- parentComposite.setExpandHorizontal(true);
- parentComposite.setExpandVertical(true);
- parentComposite.setMinWidth(pt.x);
- parentComposite.setMinHeight(pt.y);
- }
-
- /**
- * Builds an array of strings from a token list string. The token separator
- * is a comma (',').
- *
- * @param tokenString
- * @return String[]
- */
- public static String[] getTokenNames(String tokenString) {
- if (tokenString == null) {
- return new String[0];
- }
-
- return tokenString.split(","); //$NON-NLS-1$
- }
-
- /**
- * Enable/Disable the widget and all its children.
- *
- * @param widget
- * The widget to be enabled/disabled.
- * @param state
- * Enable widget if true. Disable otherwise.
- */
- public static void setWidgetState(Control widget, boolean state) {
- if (widget instanceof Composite) {
- Control widgets[] = ((Composite) widget).getChildren();
- for (int i = 0; i < widgets.length; i++) {
- setWidgetState(widgets[i], state);
- }
- }
- widget.setEnabled(state);
- }
-
- // ---------------------------------------------------------------------------
- // following is for workaround eclipse problem
- // https://bugs.eclipse.org/bugs/show_bug.cgi?id=40281
- static ControlListener _listener = new ControlListener() {
- public void controlResized(ControlEvent e) {
- final Composite c = (Composite) e.widget;
- c.getDisplay().asyncExec(new Runnable() {
- public void run() {
- if (!c.isDisposed()) {
- // XXX: in 3.0, should use c.layout(true)
- // in 3.1, should use c.layout(true, true)
- c.layout(true);
- c.redraw();
- }
- }
- });
- }
-
- public void controlMoved(ControlEvent e) {
- // nothing for move
- }
- };
-
- /**
- * @param composite
- */
- public static void workaroundResize(Composite composite) {
- composite.addControlListener(_listener);
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/TextWindow.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/TextWindow.java
deleted file mode 100644
index b829cd289..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/TextWindow.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.guiutils;
-
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Brings up a simple text window.
- *
- * @author mengbo
- */
-public class TextWindow extends ApplicationWindow {
- private String _content;
-
- private Point _size = new Point(600, 600);
-
- /**
- * empty for passing from events.
- * @param parentShell
- * @param content
- */
- public TextWindow(Shell parentShell, String content) {
- super(parentShell);
- // addStatusLine();
- _content = content;
- // addCoolBar(SWT.BORDER);
- // addMenuBar();
- // addToolBar(SWT.BORDER);
- }
-
- protected Control createContents(Composite parent) {
- // _text = new Text(parent, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- // _text.setText(_content);
- // return _text;
-
- TextViewer tview = new TextViewer(parent, SWT.BORDER | SWT.V_SCROLL
- | SWT.H_SCROLL);
- tview.setDocument(new Document(_content));
-
- return tview.getControl();
- }
-
-
- protected Point getInitialSize() {
- return _size;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/messages.properties b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/messages.properties
deleted file mode 100644
index 6291ec040..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/messages.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-IntroductionSection_noIntroDescription=No Introduction page configuration found in the plugin.xml
-IntroductionSection_noIntroTitle=No Introduction
-BrowserWindow_loading=<b>Loading...</b>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/logging/Logger.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/logging/Logger.java
deleted file mode 100644
index 3b71b83bc..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/logging/Logger.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.logging;
-
-import java.text.MessageFormat;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.runtime.ILog;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.osgi.framework.Bundle;
-
-/**
- * A resource bundle driven logger
- *
- */
-public class Logger {
- private ResourceBundle resourceBundle;
-
- private ILog log;
-
- private String bundleId;
-
- /**
- * @param bundle
- * @param resourceBundle
- */
- public Logger(Bundle bundle, ResourceBundle resourceBundle) {
- log = Platform.getLog(bundle);
- this.resourceBundle = resourceBundle;
- bundleId = bundle.getSymbolicName();
- if (resourceBundle == null) {
- IStatus status = new Status(IStatus.ERROR, bundleId, IStatus.OK,
- "The resource Bundle for logger could not be null!", null); //$NON-NLS-1$
- log.log(status);
- }
- }
- /**
- * @param key
- * @param arg0
- */
- public void info(String key, String arg0) {
- Object[] args = new Object[1];
- args[0] = arg0;
-
- MessageFormat formatter = new MessageFormat(getString(key));
- String message = formatter.format(args);
- IStatus status = new Status(IStatus.INFO, bundleId, IStatus.OK,
- message, null);
- log.log(status);
- }
-
- /**
- * @param message
- */
- public void info(String message) {
- IStatus status = new Status(IStatus.INFO, bundleId, IStatus.OK,
- message, null);
- log.log(status);
- }
-
- /**
- * @param key
- * @param e
- */
- public void info(String key, Throwable e) {
- String message = getString(key);
- IStatus status = new Status(IStatus.INFO, bundleId, IStatus.OK,
- message, e);
- log.log(status);
- }
-
- /**
- * @param key
- * @param arg0
- * @param e
- */
- public void info(String key, String arg0, Throwable e) {
- Object[] args = new Object[1];
- args[0] = arg0;
-
- MessageFormat formatter = new MessageFormat(getString(key));
- String message = formatter.format(args);
- IStatus status = new Status(IStatus.INFO, bundleId, IStatus.OK,
- message, null);
- log.log(status);
- }
-
- /**
- * @param key
- * @param arg0
- * @param arg1
- * @param e
- */
- public void info(String key, String arg0, String arg1, Throwable e) {
- Object[] args = new Object[1];
- args[0] = arg0;
- args[1] = arg1;
-
- MessageFormat formatter = new MessageFormat(getString(key));
- String message = formatter.format(args);
- IStatus status = new Status(IStatus.INFO, bundleId, IStatus.OK,
- message, e);
- log.log(status);
- }
-
- /**
- * @param key
- */
- public void error(String key) {
-
- String message = getString(key);
- IStatus status = new Status(IStatus.ERROR, bundleId, IStatus.OK,
- message, null);
- log.log(status);
- }
-
- /**
- * @param e
- */
- public void error(Throwable e) {
- IStatus status = new Status(IStatus.ERROR, bundleId, IStatus.OK, "", e); //$NON-NLS-1$
- log.log(status);
- }
-
- /**
- * @param key
- * @param e
- */
- public void error(String key, Throwable e) {
- String message = getString(key);
- IStatus status = new Status(IStatus.ERROR, bundleId, IStatus.OK,
- message, e);
- log.log(status);
- }
-
- /**
- * @param key
- * @param arg0
- */
- public void error(String key, String arg0) {
- Object[] args = new Object[1];
- args[0] = arg0;
-
- MessageFormat formatter = new MessageFormat(getString(key));
- String message = formatter.format(args);
- IStatus status = new Status(IStatus.ERROR, bundleId, IStatus.OK,
- message, null);
- log.log(status);
- }
-
- /**
- * @param key
- * @param arg
- * @param e
- */
- public void error(String key, String arg, Throwable e) {
- Object[] args = new Object[1];
- args[0] = arg;
-
- MessageFormat formatter = new MessageFormat(getString(key));
- String message = formatter.format(args);
- IStatus status = new Status(IStatus.ERROR, bundleId, IStatus.OK,
- message, e);
- log.log(status);
- }
-
- /**
- * @param key
- * @param arg0
- * @param arg1
- * @param e
- */
- public void error(String key, String arg0, String arg1, Throwable e) {
- Object[] args = new Object[1];
- args[0] = arg0;
- args[1] = arg1;
-
- MessageFormat formatter = new MessageFormat(getString(key));
- String message = formatter.format(args);
- IStatus status = new Status(IStatus.ERROR, bundleId, IStatus.OK,
- message, e);
- log.log(status);
- }
-
- /**
- * @param key
- * @return the resource for the key, or an error message if
- * resourceBundle.getString(key) throws an Exception
- */
- private String getString(String key)
- {
- try
- {
- return resourceBundle.getString(key);
- }
- // suppress non-error exceptions so that the logging operation
- // itself (usually called in response to an exception) does not
- // throw a new exception
- catch(Exception e)
- {
- return "!!missing resource: " + key + "!!"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/OrderingMessages.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/OrderingMessages.java
deleted file mode 100644
index 820224538..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/OrderingMessages.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 Oracle Corporation 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:
- * Oracle Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.preferences;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author cbateman
- *
- */
-public class OrderingMessages extends NLS
-{
- private static final String BUNDLE_NAME= "org.eclipse.jst.jsf.common.ui.internal.preferences.OrderingMessages";//$NON-NLS-1$
-
- private OrderingMessages() {
- // Do not instantiate
- }
-
- /**
- * see OrderMessages.properties
- */
- public static String Ordering_Up;
- /**
- * see OrderMessages.properties
- */
- public static String Ordering_Down;
-
- static {
- NLS.initializeMessages(BUNDLE_NAME, OrderingMessages.class);
- }
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/OrderingMessages.properties b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/OrderingMessages.properties
deleted file mode 100644
index 282ee2320..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/OrderingMessages.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2008 Oracle Corporation 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:
-# Oracle Corporation - initial API and implementation
-###############################################################################
-Ordering_Up=Up
-Ordering_Down=Down \ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/StrategyOrderingPanel.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/StrategyOrderingPanel.java
deleted file mode 100644
index c438b960d..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/StrategyOrderingPanel.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 Oracle Corporation 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:
- * Oracle Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.preferences;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jst.jsf.common.internal.policy.OrderedListProvider;
-import org.eclipse.jst.jsf.common.internal.policy.OrderedListProvider.OrderableObject;
-import org.eclipse.jst.jsf.common.ui.internal.utils.PixelConverter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Creates a composite with a checked table viewer and up/down buttons that
- * allow ordering and enablement of a list of items in the table.
- *
- * Largely derived from
- * org.eclipse.jdt.internal.ui.preferences.CodeAssistAdvancedConfigurationBlock
- *
- * @author cbateman
- *
- */
-public class StrategyOrderingPanel
-{
- private CheckboxTableViewer _viewer;
- private Button fUpButton;
- private Button fDownButton;
-
- private final OrderedListProvider _provider;
- private final ITableLabelProvider _labelProvider;
- private final String _title;
-
- /**
- * @param provider
- * @param labelProvider
- * @param title
- */
- public StrategyOrderingPanel(final OrderedListProvider provider,
- final ITableLabelProvider labelProvider, final String title)
- {
- _provider = provider;
- _labelProvider = labelProvider;
- _title = title;
- }
-
- /**
- * @param parent
- * @return the control
- */
- public Control createContents(final Composite parent)
- {
- final Composite panel = new Composite(parent, SWT.NONE);
- final GridLayout layout = new GridLayout(2, false);
- layout.marginWidth = 0;
- layout.marginHeight = 0;
- panel.setLayout(layout);
-
- final Label titleLabel = new Label(panel, SWT.NONE);
- titleLabel.setText(_title);
- final GridData gridData = new GridData(GridData.FILL,
- GridData.BEGINNING, true, false, 2, 1);
- titleLabel.setLayoutData(gridData);
-
- createTableViewer(panel);
- createButtonList(panel);
-
- return panel;
- }
-
- /**
- * Refresh the UI from model. Must not be called before createContents
- */
- public void refresh()
- {
- _provider.resetOrderedObjects();
- _viewer.refresh();
- for (final OrderableObject object : _provider.getOrderedObjects())
- {
- _viewer.setChecked(object, object.isEnabled());
- }
- }
-
- private void createTableViewer(final Composite parent)
- {
- _viewer = CheckboxTableViewer.newCheckList(parent, SWT.SINGLE
- | SWT.BORDER);
- final Table table = _viewer.getTable();
- table.setHeaderVisible(false);
- table.setLinesVisible(false);
- table.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING,
- true, false, 1, 1));
-
- final TableColumn nameColumn = new TableColumn(table, SWT.NONE);
- // nameColumn
- // .setText(PreferencesMessages.CodeAssistAdvancedConfigurationBlock_separate_table_category_column_title);
- nameColumn.setResizable(false);
-
- _viewer.setContentProvider(new ContentProvider());
-
- _viewer.setLabelProvider(_labelProvider);
- _viewer.setInput(_provider);
-
- final int ICON_AND_CHECKBOX_WITH = 50;
- final int HEADER_MARGIN = 20;
- int minNameWidth = computeWidth(table, nameColumn.getText())
- + HEADER_MARGIN;
- for (int i = 0; i < _provider.getOrderedObjects().size(); i++)
- {
- minNameWidth = Math.max(minNameWidth, computeWidth(table,
- _labelProvider.getColumnText(_provider.getOrderedObjects()
- .get(i), 0))
- + ICON_AND_CHECKBOX_WITH);
- }
-
- nameColumn.setWidth(minNameWidth);
-
- _viewer.addCheckStateListener(new ICheckStateListener()
- {
- public void checkStateChanged(final CheckStateChangedEvent event)
- {
- final boolean checked = event.getChecked();
- final OrderableObject element = (OrderableObject) event
- .getElement();
- element.setEnabled(checked);
- }
- });
-
- table.addSelectionListener(new SelectionAdapter()
- {
- @Override
- public void widgetSelected(final SelectionEvent e)
- {
- handleTableSelection();
- }
- });
-
- }
-
- private void createButtonList(final Composite parent)
- {
- final Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING,
- false, false));
-
- final GridLayout layout = new GridLayout();
- layout.marginWidth = 0;
- layout.marginHeight = 0;
- composite.setLayout(layout);
-
- fUpButton = new Button(composite, SWT.PUSH | SWT.CENTER);
- fUpButton.setText(OrderingMessages.Ordering_Up);
- fUpButton.addSelectionListener(new SelectionAdapter()
- {
- @Override
- public void widgetSelected(final SelectionEvent e)
- {
- final int index = getSelectionIndex();
- if (index != -1)
- {
- final OrderableObject object = _provider
- .getOrderedObjects().get(index);
- _provider.moveUp(object);
- _viewer.refresh();
- handleTableSelection();
- }
- }
- });
- fUpButton.setLayoutData(new GridData());
- setButtonDimensionHint(fUpButton);
-
- fDownButton = new Button(composite, SWT.PUSH | SWT.CENTER);
- fDownButton.setText(OrderingMessages.Ordering_Down);
- fDownButton.addSelectionListener(new SelectionAdapter()
- {
- @Override
- public void widgetSelected(final SelectionEvent e)
- {
- final int index = getSelectionIndex();
- if (index != -1)
- {
- final OrderableObject object = _provider
- .getOrderedObjects().get(index);
- _provider.moveDown(object);
- _viewer.refresh();
- handleTableSelection();
- }
- }
- });
- fDownButton.setLayoutData(new GridData());
- setButtonDimensionHint(fDownButton);
- }
-
- private int computeWidth(final Control control, final String name)
- {
- if (name == null)
- {
- return 0;
- }
- final GC gc = new GC(control);
- try
- {
- gc.setFont(JFaceResources.getDialogFont());
- return gc.stringExtent(name).x + 10;
- }
- finally
- {
- gc.dispose();
- }
- }
-
- private void handleTableSelection()
- {
- final OrderableObject item = getSelectedItem();
- if (item != null)
- {
- final int index = getSelectionIndex();
- fUpButton.setEnabled(index > 0);
- fDownButton
- .setEnabled(index < _provider.getOrderedObjects().size() - 1);
- }
- else
- {
- fUpButton.setEnabled(false);
- fDownButton.setEnabled(false);
- }
- }
-
- private OrderableObject getSelectedItem()
- {
- return (OrderableObject) ((IStructuredSelection) _viewer.getSelection())
- .getFirstElement();
- }
-
- private int getSelectionIndex()
- {
- return _viewer.getTable().getSelectionIndex();
- }
-
- /**
- * Returns a width hint for a button control.
- */
- private static int getButtonWidthHint(final Button button)
- {
- button.setFont(JFaceResources.getDialogFont());
- PixelConverter converter = new PixelConverter(button);
- final int widthHint = converter
- .convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
- return Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT,
- true).x);
- }
-
- /**
- * Sets width and height hint for the button control. <b>Note:</b> This is
- * a NOP if the button's layout data is not an instance of
- * <code>GridData</code>.
- *
- * @param button
- * the button for which to set the dimension hint
- */
- private static void setButtonDimensionHint(final Button button)
- {
- Assert.isNotNull(button);
- final Object gd = button.getLayoutData();
- if (gd instanceof GridData)
- {
- ((GridData) gd).widthHint = getButtonWidthHint(button);
- ((GridData) gd).horizontalAlignment = GridData.FILL;
- }
- }
-
- private static class ContentProvider implements IStructuredContentProvider
- {
-
- public Object[] getElements(final Object inputElement)
- {
- if (inputElement instanceof OrderedListProvider)
- {
- return ((OrderedListProvider) inputElement).getOrderedObjects()
- .toArray();
- }
- return new Object[0];
- }
-
- public void dispose()
- {
- // do nothing
- }
-
- public void inputChanged(final Viewer viewer, final Object oldInput,
- final Object newInput)
- {
- // do nothing
- }
-
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/FavoriteConfigurations.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/FavoriteConfigurations.java
deleted file mode 100644
index aa7744b1c..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/FavoriteConfigurations.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.utils;
-
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.jst.jsf.common.ui.internal.logging.Logger;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * This provides a means to store common properties for pages.
- *
- * Holds a <code>List</code> of <code>Properties</code> which can be
- * manipulated by the user.
- *
- * @author mengbo
- */
-public class FavoriteConfigurations {
- private static Logger _log = JSFUICommonPlugin
- .getLogger(FavoriteConfigurations.class);
-
- private final static String FAV_EXTENSIONS = ".xml"; //$NON-NLS-1$
-
- private final static String ELEMENT_ROOT = "favorite"; //$NON-NLS-1$
-
- private final static String ELEMENT_CONFIG = "config"; //$NON-NLS-1$
-
- private final static String ELEMENT_NAME = "name"; //$NON-NLS-1$
-
- private final static String ELEMENT_PROPERTY = "property"; //$NON-NLS-1$
-
- private final static String ELEMENT_VALUE = "value"; //$NON-NLS-1$
-
- private Map _favorites;
-
- private IPath _favoriteFile;
-
- private String _favoriteName;
-
- /**
- * Constructor
- *
- * @param plugin
- * used for location of favorite file.
- * @param favoriteName
- * used for name of file and for mapping the properties of this
- * favorite.
- */
- public FavoriteConfigurations(AbstractUIPlugin plugin, String favoriteName) {
- super();
- _favoriteFile = plugin.getStateLocation().append(
- scanFileName(favoriteName) + FAV_EXTENSIONS);
- readFavorites();
- }
-
- /**
- * Returns the favorite entry that is mapped under the given name.
- *
- * @param name
- * the favorite
- * @return <code>Properties</code> config entry for the favorite.
- */
- public Properties getFavorite(String name) {
- return (Properties) _favorites.get(name);
- }
-
- /**
- * Stores the Favorites into the plugin directory.
- */
- public void saveFavorites() {
- FileWriter fw = null;
- try {
- XMLMemento memento = XMLMemento.createWriteRoot(ELEMENT_ROOT);
- for (Iterator it = _favorites.keySet().iterator(); it.hasNext();) {
- String favName = (String) it.next();
- Map props = new HashMap((Properties) _favorites.get(favName));
-
- IMemento config = memento.createChild(ELEMENT_CONFIG);
- config.putString(ELEMENT_NAME, favName);
-
- for (Iterator it1 = props.keySet().iterator(); it1.hasNext();) {
- IMemento entry = config.createChild(ELEMENT_PROPERTY);
- String name = (String) it1.next();
- entry.putString(ELEMENT_NAME, name);
- entry.putString(ELEMENT_VALUE, (String) props.get(name));
- }
- }
- fw = new FileWriter(_favoriteFile.toFile());
- memento.save(fw);
- } catch (Exception ee) {
- // log.FavoriteConfigurations.save.error=Failed to save {0}
- // favorites. File={1}
- _log.info("log.FavoriteConfigurations.save.error", _favoriteName, //$NON-NLS-1$
- _favoriteFile.toOSString(), ee);
- } finally {
- if (fw != null) {
- try {
- fw.close();
- } catch (IOException ee)// NOPMD
- {
- // nothing to do when IOException throwed in closing files.
- }
- }
- }
- }
-
- /**
- * Add the favorite into the internal structure but don't save until
- * saveFavorites() is called.
- *
- * @param name
- * @param config
- */
- public void addFavorite(String name, Properties config) {
- _favorites.put(name, config);
- }
-
- /**
- * Removes the Favorite that is mapped under the given name.
- *
- * @param name
- * the name of the configuration
- */
- public void removeFavorite(String name) {
- _favorites.remove(name);
- }
-
- /**
- * Read the favorites from the disk into the memory structure.
- */
- protected void readFavorites() {
- _favorites = new HashMap();
- FileReader fr = null;
- try {
- try {
- fr = new FileReader(_favoriteFile.toFile());
- } catch (FileNotFoundException ee)// NOPMD
- {
- // no error here since they don't have to have a favorites...
- }
- if (fr != null) {
- XMLMemento memento = XMLMemento.createReadRoot(fr);
- IMemento[] children = memento.getChildren(ELEMENT_CONFIG);
- for (int ii = 0; ii < children.length; ii++) {
- Properties props = new Properties();
- IMemento config = children[ii];
- String name = config.getString(ELEMENT_NAME);
-
- IMemento[] configProperties = config
- .getChildren(ELEMENT_PROPERTY);
- for (int jj = 0; jj < configProperties.length; jj++) {
- IMemento entry = configProperties[jj];
- setProperty(props, entry.getString(ELEMENT_NAME), entry
- .getString(ELEMENT_VALUE));
- }
- _favorites.put(name, props);
- }
- }
- } catch (Exception ee) {
- // log.FavoriteConfigurations.read.error=Failed to save {0}
- // favorites. File={1}
- _log.error("log.FavoriteConfigurations.read.error", _favoriteName, //$NON-NLS-1$
- _favoriteFile.toOSString(), ee);
- } finally {
- if (fr != null) {
- try {
- fr.close();
- } catch (IOException ee)// NOPMD
- {
- // nothing to do when IOException throwed in closing files.
- }
- }
- }
- }
-
- /**
- * Set the value in the properties object.
- *
- * @param props
- * @param name
- * @param value
- */
- private void setProperty(Properties props, String name, String value) {
- if (name != null && value != null) {
- props.setProperty(name, value);
- }
- }
-
- /**
- * Get a list of all the favorites stored in this file.
- *
- * @return list of favorites
- */
- public String[] getFavoritesList() {
- Object[] objs = _favorites.keySet().toArray();
- String[] names = new String[objs.length];
-
- for (int ii = 0; ii < objs.length; ii++) {
- names[ii] = (String) objs[ii];
- }
- Arrays.sort(names);
-
- return names;
- }
-
- /**
- * scan the file name for any bad character that would fail when trying to
- * create the file. We replace bad characters with '_'
- */
- private static String scanFileName(String filename) {
- StringBuffer strBuf = new StringBuffer();
- char[] chars = filename.toCharArray();
-
- for (int ii = 0; ii < chars.length; ii++) {
- switch (chars[ii]) {
- case '&':
- case '\\':
- case '/':
- case ' ':
- case '\t':
- case ':':
- case '.':
- case '\"':
- case '\'':
- case '@':
- strBuf.append('_');
- break;
- default:
- strBuf.append(chars[ii]);
- break;
- }
- }
-
- return strBuf.toString();
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/JSFSharedImages.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/JSFSharedImages.java
deleted file mode 100644
index 2b67a671e..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/JSFSharedImages.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 Oracle Corporation 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:
- * Oracle Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.utils;
-
-/**
- * Constants that can be passed to JSFUICommonPlugin.getImageDescriptor and
- * getImage to obtain common images.
- *
- * @author cbateman
- *
- */
-public interface JSFSharedImages
-{
- /**
- * The icon use for default/unknown tags. Consists of blue open/close
- * angled braces on a neutral background.
- *
- * Size: 16x16
- */
- public final static String DEFAULT_PALETTE_TAG_IMG = "PD_Palette_Default.gif"; //$NON-NLS-1$
-
- /**
- * A yellow cube on a white background. Suitable for representing
- * generic objects and components.
- *
- * Size: 16x16
- */
- public final static String GENERIC_OBJECT_IMG = "object.gif"; //$NON-NLS-1$
-
- /**
- * A generic image suitable for representing JSF validators. Consists of
- * a white box with a blue check mark.
- *
- * Size: 16x16
- */
- public final static String GENERIC_VALIDATOR_IMG = "jsf_validator.gif"; //$NON-NLS-1$
-
- /**
- * A generic image suitable for representing JSF converter. Consists of
- * yellow blob being "converted".
- *
- * Size: 16x16
- */
- public final static String GENERIC_CONVERTER_IMG = "jsf_converter.gif"; //$NON-NLS-1$
-
- /**
- * A generic image suitable for representing a view root. Same as the
- * default image generally associated with f:view.
- *
- * Size: 16x16.
- */
- public static final String GENERIC_VIEWROOT_IMG = "jsf_view.gif"; //$NON-NLS-1$
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/JavaModelUtil.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/JavaModelUtil.java
deleted file mode 100644
index c4086ed7f..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/JavaModelUtil.java
+++ /dev/null
@@ -1,1032 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.utils;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.ClasspathContainerInitializer;
-import org.eclipse.jdt.core.Flags;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IField;
-import org.eclipse.jdt.core.IImportDeclaration;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IMember;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.ITypeHierarchy;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.Signature;
-import org.eclipse.jdt.core.compiler.CharOperation;
-
-/**
- * Original code is from JDT Utility methods for the Java Model.
- */
-public final class JavaModelUtil {
-
- /**
- * Finds a type by its qualified type name (dot separated).
- *
- * @param jproject
- * The java project to search in
- * @param fullyQualifiedName
- * The fully qualified name (type name with enclosing type names
- * and package (all separated by dots))
- * @return The type found, or null if not existing
- * @throws JavaModelException
- */
- public static IType findType(IJavaProject jproject,
- String fullyQualifiedName) throws JavaModelException {
- // workaround for bug 22883
- IType type = jproject.findType(fullyQualifiedName);
- if (type != null) {
- return type;
- }
- IPackageFragmentRoot[] roots = jproject.getPackageFragmentRoots();
- for (int i = 0; i < roots.length; i++) {
- IPackageFragmentRoot root = roots[i];
- type = findType(root, fullyQualifiedName);
- if (type != null && type.exists()) {
- return type;
- }
- }
- return null;
- }
-
- /**
- * Returns <code>true</code> if the given package fragment root is
- * referenced. This means it is own by a different project but is referenced
- * by the root's parent. Returns <code>false</code> if the given root
- * doesn't have an underlying resource.
- * @param root
- * @return true if root is referenced
- */
- public static boolean isReferenced(IPackageFragmentRoot root) {
- IResource resource = root.getResource();
- if (resource != null) {
- IProject jarProject = resource.getProject();
- IProject container = root.getJavaProject().getProject();
- return !container.equals(jarProject);
- }
- return false;
- }
-
- private static IType findType(IPackageFragmentRoot root,
- String fullyQualifiedName) throws JavaModelException {
- IJavaElement[] children = root.getChildren();
- for (int i = 0; i < children.length; i++) {
- IJavaElement element = children[i];
- if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
- IPackageFragment pack = (IPackageFragment) element;
- if (!fullyQualifiedName.startsWith(pack.getElementName())) {
- continue;
- }
- IType type = findType(pack, fullyQualifiedName);
- if (type != null && type.exists()) {
- return type;
- }
- }
- }
- return null;
- }
-
- private static IType findType(IPackageFragment pack,
- String fullyQualifiedName) throws JavaModelException {
- ICompilationUnit[] cus = pack.getCompilationUnits();
- for (int i = 0; i < cus.length; i++) {
- ICompilationUnit unit = cus[i];
- IType type = findType(unit, fullyQualifiedName);
- if (type != null && type.exists()) {
- return type;
- }
- }
- return null;
- }
-
- private static IType findType(ICompilationUnit cu, String fullyQualifiedName)
- throws JavaModelException {
- IType[] types = cu.getAllTypes();
- for (int i = 0; i < types.length; i++) {
- IType type = types[i];
- if (getFullyQualifiedName(type).equals(fullyQualifiedName)) {
- return type;
- }
- }
- return null;
- }
-
- /**
- * Finds a type by package and type name.
- *
- * @param jproject
- * the java project to search in
- * @param pack
- * The package name
- * @param typeQualifiedName
- * the type qualified name (type name with enclosing type names
- * (separated by dots))
- * @return the type found, or null if not existing
- * @throws JavaModelException
- * @deprecated Use IJavaProject.findType(String, String) instead
- */
- public static IType findType(IJavaProject jproject, String pack,
- String typeQualifiedName) throws JavaModelException {
- return jproject.findType(pack, typeQualifiedName);
- }
-
- /**
- * Finds a type container by container name. The returned element will be of
- * type <code>IType</code> or a <code>IPackageFragment</code>.
- * <code>null</code> is returned if the type container could not be found.
- *
- * @param jproject
- * The Java project defining the context to search
- * @param typeContainerName
- * A dot separarted name of the type container
- * @return the java element
- * @throws JavaModelException
- * @see #getTypeContainerName(IType)
- */
- public static IJavaElement findTypeContainer(IJavaProject jproject,
- String typeContainerName) throws JavaModelException {
- // try to find it as type
- IJavaElement result = jproject.findType(typeContainerName);
- if (result == null) {
- // find it as package
- IPath path = new Path(typeContainerName.replace('.', '/'));
- result = jproject.findElement(path);
- if (!(result instanceof IPackageFragment)) {
- result = null;
- }
-
- }
- return result;
- }
-
- /**
- * Finds a type in a compilation unit. Typical usage is to find the
- * corresponding type in a working copy.
- *
- * @param cu
- * the compilation unit to search in
- * @param typeQualifiedName
- * the type qualified name (type name with enclosing type names
- * (separated by dots))
- * @return the type found, or null if not existing
- * @throws JavaModelException
- */
- public static IType findTypeInCompilationUnit(ICompilationUnit cu,
- String typeQualifiedName) throws JavaModelException {
- IType[] types = cu.getAllTypes();
- for (int i = 0; i < types.length; i++) {
- String currName = getTypeQualifiedName(types[i]);
- if (typeQualifiedName.equals(currName)) {
- return types[i];
- }
- }
- return null;
- }
-
- /**
- * Finds a a member in a compilation unit. Typical usage is to find the
- * corresponding member in a working copy.
- *
- * @param cu
- * the compilation unit (eg. working copy) to search in
- * @param member
- * the member (eg. from the original)
- * @return the member found, or null if not existing
- */
- public static IMember findMemberInCompilationUnit(ICompilationUnit cu,
- IMember member) {
- IJavaElement[] elements = cu.findElements(member);
- if (elements != null && elements.length > 0) {
- return (IMember) elements[0];
- }
- return null;
- }
-
- /**
- * Returns the element of the given compilation unit which is "equal" to the
- * given element. Note that the given element usually has a parent different
- * from the given compilation unit.
- *
- * @param cu
- * the cu to search in
- * @param element
- * the element to look for
- * @return an element of the given cu "equal" to the given element
- */
- public static IJavaElement findInCompilationUnit(ICompilationUnit cu,
- IJavaElement element) {
- IJavaElement[] elements = cu.findElements(element);
- if (elements != null && elements.length > 0) {
- return elements[0];
- }
- return null;
- }
-
- /**
- * Returns the qualified type name of the given type using '.' as
- * separators. This is a replace for IType.getTypeQualifiedName() which uses
- * '$' as separators. As '$' is also a valid character in an id this is
- * ambiguous. JavaCore PR: 1GCFUNT
- * @param type
- * @return the type qualified name
- */
- public static String getTypeQualifiedName(IType type) {
- return type.getTypeQualifiedName('.');
- }
-
- /**
- * Returns the fully qualified name of the given type using '.' as
- * separators. This is a replace for IType.getFullyQualifiedTypeName which
- * uses '$' as separators. As '$' is also a valid character in an id this is
- * ambiguous. JavaCore PR: 1GCFUNT
- * @param type
- * @return the fully qualified name using . as the separator
- */
- public static String getFullyQualifiedName(IType type) {
- return type.getFullyQualifiedName('.');
- }
-
- /**
- * Returns the fully qualified name of a type's container. (package name or
- * enclosing type name)
- * @param type
- * @return the container name
- */
- public static String getTypeContainerName(IType type) {
- IType outerType = type.getDeclaringType();
- if (outerType != null) {
- return outerType.getFullyQualifiedName('.');
- }
- return type.getPackageFragment().getElementName();
- }
-
- /**
- * Concatenates two names. Uses a dot for separation. Both strings can be
- * empty or <code>null</code>.
- * @param name1
- * @param name2
- * @return name1 + name2
- */
- public static String concatenateName(String name1, String name2) {
- StringBuffer buf = new StringBuffer();
- if (name1 != null && name1.length() > 0) {
- buf.append(name1);
- }
- if (name2 != null && name2.length() > 0) {
- if (buf.length() > 0) {
- buf.append('.');
- }
- buf.append(name2);
- }
- return buf.toString();
- }
-
- /**
- * Concatenates two names. Uses a dot for separation. Both strings can be
- * empty or <code>null</code>.
- * @param name1
- * @param name2
- * @return name1 + name2
- */
- public static String concatenateName(char[] name1, char[] name2) {
- StringBuffer buf = new StringBuffer();
- if (name1 != null && name1.length > 0) {
- buf.append(name1);
- }
- if (name2 != null && name2.length > 0) {
- if (buf.length() > 0) {
- buf.append('.');
- }
- buf.append(name2);
- }
- return buf.toString();
- }
-
- /**
- * Evaluates if a member (possible from another package) is visible from
- * elements in a package.
- *
- * @param member
- * The member to test the visibility for
- * @param pack
- * The package in focus
- * @return true if visible
- * @throws JavaModelException
- */
- public static boolean isVisible(IMember member, IPackageFragment pack)
- throws JavaModelException {
-
- int type = member.getElementType();
- if (type == IJavaElement.INITIALIZER
- || (type == IJavaElement.METHOD && member.getElementName()
- .startsWith("<"))) { //$NON-NLS-1$
- //$NON-NLS-1$
- return false;
- }
-
- int otherflags = member.getFlags();
- IType declaringType = member.getDeclaringType();
- if (Flags.isPublic(otherflags)
- || (declaringType != null && declaringType.isInterface())) {
- return true;
- } else if (Flags.isPrivate(otherflags)) {
- return false;
- }
-
- IPackageFragment otherpack = (IPackageFragment) findParentOfKind(
- member, IJavaElement.PACKAGE_FRAGMENT);
- return (pack != null && otherpack != null && isSamePackage(pack,
- otherpack));
- }
-
- /**
- * Evaluates if a member in the focus' element hierarchy is visible from
- * elements in a package.
- *
- * @param member
- * The member to test the visibility for
- * @param pack
- * The package of the focus element focus
- * @return true if is visible in hiearchy
- * @throws JavaModelException
- */
- public static boolean isVisibleInHierarchy(IMember member,
- IPackageFragment pack) throws JavaModelException {
- int type = member.getElementType();
- if (type == IJavaElement.INITIALIZER
- || (type == IJavaElement.METHOD && member.getElementName()
- .startsWith("<"))) { //$NON-NLS-1$
- //$NON-NLS-1$
- return false;
- }
-
- int otherflags = member.getFlags();
-
- IType declaringType = member.getDeclaringType();
- if (Flags.isPublic(otherflags) || Flags.isProtected(otherflags)
- || (declaringType != null && declaringType.isInterface())) {
- return true;
- } else if (Flags.isPrivate(otherflags)) {
- return false;
- }
-
- IPackageFragment otherpack = (IPackageFragment) findParentOfKind(
- member, IJavaElement.PACKAGE_FRAGMENT);
- return (pack != null && pack.equals(otherpack));
- }
-
- /**
- * Returns the package fragment root of <code>IJavaElement</code>. If the
- * given element is already a package fragment root, the element itself is
- * returned.
- * @param element
- * @return the package fragment root
- */
- public static IPackageFragmentRoot getPackageFragmentRoot(
- IJavaElement element) {
- return (IPackageFragmentRoot) element
- .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
- }
-
- /**
- * Returns the parent of the supplied java element that conforms to the
- * given parent type or <code>null</code>, if such a parent doesn't exit.
- *
- * @deprecated Use element.getParent().getAncestor(kind);
- */
- private static IJavaElement findParentOfKind(IJavaElement element, int kind) {
- if (element != null && element.getParent() != null) {
- return element.getParent().getAncestor(kind);
- }
- return null;
- }
-
- /**
- * Finds a method in a type. This searches for a method with the same name
- * and signature. Parameter types are only compared by the simple name, no
- * resolving for the fully qualified type name is done. Constructors are
- * only compared by parameters, not the name.
- *
- * @param name
- * The name of the method to find
- * @param paramTypes
- * The type signatures of the parameters e.g.
- * <code>{"QString;","I"}</code>
- * @param isConstructor
- * If the method is a constructor
- * @param type
- * @return The first found method or <code>null</code>, if nothing found
- * @throws JavaModelException
- */
- public static IMethod findMethod(String name, String[] paramTypes,
- boolean isConstructor, IType type) throws JavaModelException {
- return findMethod(name, paramTypes, isConstructor, type.getMethods());
- }
-
- /**
- * Finds a method by name. This searches for a method with a name and
- * signature. Parameter types are only compared by the simple name, no
- * resolving for the fully qualified type name is done. Constructors are
- * only compared by parameters, not the name.
- *
- * @param name
- * The name of the method to find
- * @param paramTypes
- * The type signatures of the parameters e.g.
- * <code>{"QString;","I"}</code>
- * @param isConstructor
- * If the method is a constructor
- * @param methods
- * The methods to search in
- * @return The found method or <code>null</code>, if nothing found
- * @throws JavaModelException
- */
- public static IMethod findMethod(String name, String[] paramTypes,
- boolean isConstructor, IMethod[] methods) throws JavaModelException {
- for (int i = methods.length - 1; i >= 0; i--) {
- if (isSameMethodSignature(name, paramTypes, isConstructor,
- methods[i])) {
- return methods[i];
- }
- }
- return null;
- }
-
- /**
- * Finds a method declararion in a type's hierarchy. The search is top down,
- * so this returns the first declaration of the method in the hierarchy.
- * This searches for a method with a name and signature. Parameter types are
- * only compared by the simple name, no resolving for the fully qualified
- * type name is done. Constructors are only compared by parameters, not the
- * name.
- * @param hierarchy
- *
- * @param type
- * Searches in this type's supertypes.
- * @param name
- * The name of the method to find
- * @param paramTypes
- * The type signatures of the parameters e.g.
- * <code>{"QString;","I"}</code>
- * @param isConstructor
- * If the method is a constructor
- * @return The first method found or null, if nothing found
- * @throws JavaModelException
- */
- public static IMethod findMethodDeclarationInHierarchy(
- ITypeHierarchy hierarchy, IType type, String name,
- String[] paramTypes, boolean isConstructor)
- throws JavaModelException {
- IType[] superTypes = hierarchy.getAllSupertypes(type);
- for (int i = superTypes.length - 1; i >= 0; i--) {
- IMethod first = findMethod(name, paramTypes, isConstructor,
- superTypes[i]);
- if (first != null && !Flags.isPrivate(first.getFlags())) {
- // the order getAllSupertypes does make assumptions of the order
- // of inner elements -> search recursivly
- IMethod res = findMethodDeclarationInHierarchy(hierarchy, first
- .getDeclaringType(), name, paramTypes, isConstructor);
- if (res != null) {
- return res;
- }
- return first;
- }
- }
- return null;
- }
-
- /**
- * Finds a method implementation in a type's classhierarchy. The search is
- * bottom-up, so this returns the nearest overridden method. Does not find
- * methods in interfaces or abstract methods. This searches for a method
- * with a name and signature. Parameter types are only compared by the
- * simple name, no resolving for the fully qualified type name is done.
- * Constructors are only compared by parameters, not the name.
- * @param hierarchy
- *
- * @param type
- * Type to search the superclasses
- * @param name
- * The name of the method to find
- * @param paramTypes
- * The type signatures of the parameters e.g.
- * <code>{"QString;","I"}</code>
- * @param isConstructor
- * If the method is a constructor
- * @return The first method found or null, if nothing found
- * @throws JavaModelException
- */
- public static IMethod findMethodImplementationInHierarchy(
- ITypeHierarchy hierarchy, IType type, String name,
- String[] paramTypes, boolean isConstructor)
- throws JavaModelException {
- IType[] superTypes = hierarchy.getAllSuperclasses(type);
- for (int i = 0; i < superTypes.length; i++) {
- IMethod found = findMethod(name, paramTypes, isConstructor,
- superTypes[i]);
- if (found != null) {
- if (Flags.isAbstract(found.getFlags())) {
- return null;
- }
- return found;
- }
- }
- return null;
- }
-
- private static IMethod findMethodInHierarchy(ITypeHierarchy hierarchy,
- IType type, String name, String[] paramTypes, boolean isConstructor)
- throws JavaModelException {
- IMethod method = findMethod(name, paramTypes, isConstructor, type);
- if (method != null) {
- return method;
- }
- IType superClass = hierarchy.getSuperclass(type);
- if (superClass != null) {
- IMethod res = findMethodInHierarchy(hierarchy, superClass, name,
- paramTypes, isConstructor);
- if (res != null) {
- return res;
- }
- }
- if (!isConstructor) {
- IType[] superInterfaces = hierarchy.getSuperInterfaces(type);
- for (int i = 0; i < superInterfaces.length; i++) {
- IMethod res = findMethodInHierarchy(hierarchy,
- superInterfaces[i], name, paramTypes, false);
- if (res != null) {
- return res;
- }
- }
- }
- return method;
- }
-
- /**
- * Finds the method that is defines/declares the given method. The search is
- * bottom-up, so this returns the nearest defining/declaring method.
- * @param typeHierarchy
- * @param type
- * @param methodName
- * @param paramTypes
- * @param isConstructor
- *
- * @param testVisibility
- * If true the result is tested on visibility. Null is returned
- * if the method is not visible.
- * @return the method or null
- * @throws JavaModelException
- */
- public static IMethod findMethodDefininition(ITypeHierarchy typeHierarchy,
- IType type, String methodName, String[] paramTypes,
- boolean isConstructor, boolean testVisibility)
- throws JavaModelException {
- IType superClass = typeHierarchy.getSuperclass(type);
- if (superClass != null) {
- IMethod res = findMethodInHierarchy(typeHierarchy, superClass,
- methodName, paramTypes, isConstructor);
- if (res != null && !Flags.isPrivate(res.getFlags())) {
- if (!testVisibility
- || isVisibleInHierarchy(res, type.getPackageFragment())) {
- return res;
- }
- }
- }
- if (!isConstructor) {
- IType[] interfaces = typeHierarchy.getSuperInterfaces(type);
- for (int i = 0; i < interfaces.length; i++) {
- IMethod res = findMethodInHierarchy(typeHierarchy,
- interfaces[i], methodName, paramTypes, false);
- if (res != null) {
- return res; // methods from interfaces are always public and
- // therefore visible
- }
- }
- }
- return null;
- }
-
- /**
- * Tests if a method equals to the given signature. Parameter types are only
- * compared by the simple name, no resolving for the fully qualified type
- * name is done. Constructors are only compared by parameters, not the name.
- *
- * @param name
- * Name of the method
- * @param paramTypes
- * The type signatures of the parameters e.g.
- * <code>{"QString;","I"}</code>
- * @param isConstructor
- * Specifies if the method is a constructor
- * @param curr
- * @return Returns <code>true</code> if the method has the given name and
- * parameter types and constructor state.
- * @throws JavaModelException
- */
- public static boolean isSameMethodSignature(String name,
- String[] paramTypes, boolean isConstructor, IMethod curr)
- throws JavaModelException {
- if (isConstructor || name.equals(curr.getElementName())) {
- if (isConstructor == curr.isConstructor()) {
- String[] currParamTypes = curr.getParameterTypes();
- if (paramTypes.length == currParamTypes.length) {
- for (int i = 0; i < paramTypes.length; i++) {
- String t1 = Signature.getSimpleName(Signature
- .toString(paramTypes[i]));
- String t2 = Signature.getSimpleName(Signature
- .toString(currParamTypes[i]));
- if (!t1.equals(t2)) {
- return false;
- }
- }
- return true;
- }
- }
- }
- return false;
- }
-
- /**
- * Tests if two <code>IPackageFragment</code>s represent the same logical
- * java package.
- * @param pack1
- * @param pack2
- *
- * @return <code>true</code> if the package fragments' names are equal.
- */
- public static boolean isSamePackage(IPackageFragment pack1,
- IPackageFragment pack2) {
- return pack1.getElementName().equals(pack2.getElementName());
- }
-
- /**
- * Checks whether the given type has a valid main method or not.
- * @param type
- * @return true if type has a main method
- * @throws JavaModelException
- */
- public static boolean hasMainMethod(IType type) throws JavaModelException {
- IMethod[] methods = type.getMethods();
- for (int i = 0; i < methods.length; i++) {
- if (methods[i].isMainMethod()) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Checks if the field is boolean.
- * @param field
- * @return true if the file is of primitive boolean type
- * @throws JavaModelException
- */
- public static boolean isBoolean(IField field) throws JavaModelException {
- return field.getTypeSignature().equals(Signature.SIG_BOOLEAN);
- }
-
- /**
- * Tests if the given element is on the class path of its containing
- * project. Handles the case that the containing project isn't a Java
- * project.
- * @param element
- * @return true if element in on the class path?
- */
- public static boolean isOnClasspath(IJavaElement element) {
- IJavaProject project = element.getJavaProject();
- if (!project.exists())
- return false;
- return project.isOnClasspath(element);
- }
-
- /**
- * Resolves a type name in the context of the declaring type.
- *
- * @param refTypeSig
- * the type name in signature notation (for example 'QVector')
- * this can also be an array type, but dimensions will be
- * ignored.
- * @param declaringType
- * the context for resolving (type where the reference was made
- * in)
- * @return returns the fully qualified type name or build-in-type name. if a
- * unresoved type couldn't be resolved null is returned
- * @throws JavaModelException
- */
- public static String getResolvedTypeName(String refTypeSig,
- IType declaringType) throws JavaModelException {
- int arrayCount = Signature.getArrayCount(refTypeSig);
- char type = refTypeSig.charAt(arrayCount);
- if (type == Signature.C_UNRESOLVED) {
- int semi = refTypeSig
- .indexOf(Signature.C_SEMICOLON, arrayCount + 1);
- if (semi == -1) {
- throw new IllegalArgumentException();
- }
- String name = refTypeSig.substring(arrayCount + 1, semi);
-
- String[][] resolvedNames = declaringType.resolveType(name);
- if (resolvedNames != null && resolvedNames.length > 0) {
- return JavaModelUtil.concatenateName(resolvedNames[0][0],
- resolvedNames[0][1]);
- }
- return null;
- }
- return Signature.toString(refTypeSig.substring(arrayCount));
- }
-
- /**
- * Returns if a CU can be edited.
- * @param cu
- * @return true if cu is editable
- */
- public static boolean isEditable(ICompilationUnit cu) {
- IResource resource = toOriginal(cu).getResource();
- return (resource.exists() && !resource.getResourceAttributes()
- .isReadOnly());
- }
-
- /**
- * Finds a qualified import for a type name.
- * @param cu
- * @param simpleName
- * @return the import declaration or null
- * @throws JavaModelException
- */
- public static IImportDeclaration findImport(ICompilationUnit cu,
- String simpleName) throws JavaModelException {
- IImportDeclaration[] existing = cu.getImports();
- for (int i = 0; i < existing.length; i++) {
- String curr = existing[i].getElementName();
- if (curr.endsWith(simpleName)) {
- int dotPos = curr.length() - simpleName.length() - 1;
- if ((dotPos == -1)
- || (dotPos > 0 && curr.charAt(dotPos) == '.')) {
- return existing[i];
- }
- }
- }
- return null;
- }
-
- /**
- * Returns the original if the given member. If the member is already an
- * original the input is returned. The returned member might not exist
- * @param member
- * @return the original IMember
- */
- public static IMember toOriginal(IMember member) {
- if (member instanceof IMethod) {
- return toOriginalMethod((IMethod) member);
- }
-
- return (IMember) member.getPrimaryElement();
- /*
- * ICompilationUnit cu= member.getCompilationUnit(); if (cu != null &&
- * cu.isWorkingCopy()) return (IMember)cu.getOriginal(member); return
- * member;
- */
- }
-
- /*
- * XXX workaround for bug 18568
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=18568 to be removed once the
- * bug is fixed
- */
- private static IMethod toOriginalMethod(IMethod method) {
- ICompilationUnit cu = method.getCompilationUnit();
- if (cu == null || isPrimary(cu)) {
- return method;
- }
- try {
- // use the workaround only if needed
- if (!method.getElementName().equals(
- method.getDeclaringType().getElementName()))
- return (IMethod) method.getPrimaryElement();
-
- IType originalType = (IType) toOriginal(method.getDeclaringType());
- IMethod[] methods = originalType.findMethods(method);
- boolean isConstructor = method.isConstructor();
- for (int i = 0; i < methods.length; i++) {
- if (methods[i].isConstructor() == isConstructor)
- return methods[i];
- }
- return null;
- } catch (JavaModelException e) {
- return null;
- }
- }
-
- // private static boolean PRIMARY_ONLY = false;
-
- /**
- * Returns the original cu if the given cu is a working copy. If the cu is
- * already an original the input cu is returned. The returned cu might not
- * exist
- * @param cu
- * @return the original compiliation unit
- */
- public static ICompilationUnit toOriginal(ICompilationUnit cu) {
- // To stay compatible with old version returned null
- // if cu is null
- if (cu == null)
- return cu;
- return cu.getPrimary();
- }
-
- /**
- * Returns the original element if the given element is a working copy. If
- * the cu is already an original the input element is returned. The returned
- * element might not exist
- * @param element
- * @return element's primary element
- */
- public static IJavaElement toOriginal(IJavaElement element) {
- return element.getPrimaryElement();
- }
-
- /**
- * Returns true if a cu is a primary cu (original or shared working copy)
- * @param cu
- * @return true if cu is primary
- */
- public static boolean isPrimary(ICompilationUnit cu) {
- return cu.getOwner() == null;
- }
-
- /**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=19253
- *
- * Reconciling happens in a separate thread. This can cause a situation
- * where the Java element gets disposed after an exists test has been done.
- * So we should not log not present exceptions when they happen in working
- * copies.
- * @param exception
- * @return true if filter not present
- */
- public static boolean filterNotPresentException(CoreException exception) {
- if (!(exception instanceof JavaModelException)) {
- return true;
- }
- JavaModelException je = (JavaModelException) exception;
- if (!je.isDoesNotExist()) {
- return true;
- }
- IJavaElement[] elements = je.getJavaModelStatus().getElements();
- for (int i = 0; i < elements.length; i++) {
- IJavaElement element = elements[i];
- ICompilationUnit unit = (ICompilationUnit) element
- .getAncestor(IJavaElement.COMPILATION_UNIT);
- if (unit == null) {
- return true;
- }
- if (!unit.isWorkingCopy()) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * @param type
- * @param pm
- * @return all supertypes of type
- * @throws JavaModelException
- */
- public static IType[] getAllSuperTypes(IType type, IProgressMonitor pm)
- throws JavaModelException {
- // workaround for 23656
- Set types = new HashSet(Arrays.asList(type.newSupertypeHierarchy(pm)
- .getAllSupertypes(type)));
- IType objekt = type.getJavaProject().findType("java.lang.Object");//$NON-NLS-1$
- if (objekt != null) {
- types.add(objekt);
- }
- return (IType[]) types.toArray(new IType[types.size()]);
- }
-
- /**
- * @param resourcePath
- * @param exclusionPatterns
- * @return true if resourcePath is excluded by exclusion patterns
- */
- public static boolean isExcludedPath(IPath resourcePath,
- IPath[] exclusionPatterns) {
- char[] path = resourcePath.toString().toCharArray();
- for (int i = 0, length = exclusionPatterns.length; i < length; i++) {
- char[] pattern = exclusionPatterns[i].toString().toCharArray();
- if (CharOperation.pathMatch(pattern, path, true, '/')) {
- return true;
- }
- }
- return false;
- }
-
- /*
-
- * @see IClasspathEntry#getExclusionPatterns
- */
- /**
- * Returns whether the given resource path matches one of the exclusion
- * patterns.
- *
- * @param resourcePath
- * @param exclusionPatterns
- * @return true if resourcePath is excluded
- */
- public static boolean isExcluded(IPath resourcePath,
- char[][] exclusionPatterns) {
- if (exclusionPatterns == null) {
- return false;
- }
- char[] path = resourcePath.toString().toCharArray();
- for (int i = 0, length = exclusionPatterns.length; i < length; i++) {
- if (CharOperation.pathMatch(exclusionPatterns[i], path, true, '/')) {
- return true;
- }
- }
- return false;
- }
-
- private static Boolean fgIsJDTCore_1_5 = null;
-
- /**
- * @return true if JRE 1.5 in enabled.
- */
- public static boolean isJDTCore_1_5() {
- if (fgIsJDTCore_1_5 == null) {
- fgIsJDTCore_1_5 = JavaCore
- .getDefaultOptions()
- .containsKey(
- "org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation") ? Boolean.TRUE //$NON-NLS-1$
- : Boolean.FALSE;
- }
- return fgIsJDTCore_1_5.booleanValue();
- }
-
- /**
- * Helper method that tests if an classpath entry can be found in a
- * container. <code>null</code> is returned if the entry can not be found
- * or if the container does not allows the configuration of source
- * attachments
- *
- * @param jproject
- * The container's parent project
- * @param containerPath
- * The path of the container
- * @param libPath
- * The path of the library to be found
- * @return IClasspathEntry A classpath entry from the container of
- * <code>null</code> if the container can not be modified.
- * @throws JavaModelException
- */
- public static IClasspathEntry getClasspathEntryToEdit(
- IJavaProject jproject, IPath containerPath, IPath libPath)
- throws JavaModelException {
- IClasspathContainer container = JavaCore.getClasspathContainer(
- containerPath, jproject);
- ClasspathContainerInitializer initializer = JavaCore
- .getClasspathContainerInitializer(containerPath.segment(0));
- if (container != null
- && initializer != null
- && initializer.canUpdateClasspathContainer(containerPath,
- jproject)) {
- IClasspathEntry[] entries = container.getClasspathEntries();
- for (int i = 0; i < entries.length; i++) {
- IClasspathEntry curr = entries[i];
- IClasspathEntry resolved = JavaCore
- .getResolvedClasspathEntry(curr);
- if (resolved != null && libPath.equals(resolved.getPath())) {
- return curr; // return the real entry
- }
- }
- }
- return null; // attachment not possible
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/PathUtil.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/PathUtil.java
deleted file mode 100644
index 8eebe903d..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/PathUtil.java
+++ /dev/null
@@ -1,307 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.utils;
-
-import java.io.File;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJarEntryResource;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jst.jsf.common.ui.IFileFolderConstants;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Collection of helper methods to manage and convert links Originally part of
- * the LinksManager (com.ibm.iwt.parser.util)
- */
-public final class PathUtil {
- private static final String FORWARD_SLASH = "/"; //$NON-NLS-1$
-
- private static final String RELATIVE_PATH_SIGNAL = IFileFolderConstants.DOT
- + IFileFolderConstants.DOT + IFileFolderConstants.PATH_SEPARATOR;
-
- /**
- * adjust relative path isside the absolute path
- * @param path
- * @return the adjusted path
- */
- public static String adjustPath(String path) {
- int i = 0;
- while ((i = path.indexOf(RELATIVE_PATH_SIGNAL)) > 0) {
- // split the string into two
- String part1 = path.substring(0, i - 1);
- String part2 = path
- .substring(i + RELATIVE_PATH_SIGNAL.length() - 1);
- // strip one path seg from part1
- int j = part1.lastIndexOf(FORWARD_SLASH);
- if (j == -1) {
- return "";//$NON-NLS-1$
- }
- part1 = part1.substring(0, j);
- path = part1 + part2;
- }
- return path;
- }
-
- /**
- * Append trailing url slash if needed
- * @param input
- * @return the string
- */
- public static String appendTrailingURLSlash(String input) {
- // check to see already a slash
- if (!input.endsWith(FORWARD_SLASH)) {
- input += FORWARD_SLASH;
- }
- return input;
- }
-
- /**
- * Convert to relative url based on base
- * @param input
- * @param base
- * @return the string
- */
- public static String convertToRelativePath(String input, String base) {
- // tokenize the strings
- StringTokenizer inputTokenizer = new StringTokenizer(input,
- FORWARD_SLASH);
- StringTokenizer baseTokenizer = new StringTokenizer(base, FORWARD_SLASH);
- String token1 = "", token2 = "";//$NON-NLS-2$//$NON-NLS-1$
- //
- // Go through until equls
- while (true) {
- if (!inputTokenizer.hasMoreTokens()
- || !baseTokenizer.hasMoreTokens()) {
- break;
- }
- token1 = baseTokenizer.nextToken();
- token2 = inputTokenizer.nextToken();
- if (!token1.equals(token2)) {
- break;
- }
- }
- // now generate the backs
- String output = "";//$NON-NLS-1$
- while (baseTokenizer.hasMoreTokens()) {
- baseTokenizer.nextToken();
- output += RELATIVE_PATH_SIGNAL;
- }
- output += token2;
- // generate the rest
- while (inputTokenizer.hasMoreTokens()) {
- output = output + FORWARD_SLASH + inputTokenizer.nextToken();
- }
- return output;
- }
-
- /**
- * @param projectName
- * @param path
- * @return the path in the project converted to a path relative to the
- * web folder
- */
- public static String convertToWebPath(String projectName, String path) {
- String name = ""; //$NON-NLS-1$
- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(
- projectName);
- String webrootName = WebrootUtil.getWebContentFolder(project).getName();
-
- if (path.indexOf(webrootName) != -1) {
- name = projectName + IFileFolderConstants.PATH_SEPARATOR
- + webrootName;
- } else {
- name = projectName;
- }
- int index = path.indexOf(projectName);
-
- return path.substring(index + name.length());
- }
-
- /**
- * convert path relative to current active file to absolute path in
- * filesystem
- *
- * @param uri
- * the relative path
- * @param curFile
- * @return absolute path in file system
- */
- public static String convertToAbsolutePath(String uri, IFile curFile) {
- if (uri == null || uri.trim().equals("")) { //$NON-NLS-1$
- return uri;
- }
- String webroot = ""; //$NON-NLS-1$
- IFile jsp = curFile;
- try {
- if (jsp == null) {
- jsp = ((IFileEditorInput) getActivePage()
- .getActiveEditor().getEditorInput()).getFile();
- }
- if (jsp != null) {
- String webrootName = WebrootUtil.getWebContentFolder(
- jsp.getProject()).getName();
- webroot = jsp.getProject().getFolder(webrootName).getLocation()
- .toString();
- }
- } catch (NullPointerException e) {
- return uri;
- }
- if (uri.startsWith(IFileFolderConstants.PATH_SEPARATOR))
- {
- return webroot + uri;
- }
- if (jsp != null) {
- IContainer con = jsp.getParent();
- if (con != null) {
- IPath path = con.getLocation();
- if (path != null) {
- String aPath = path.toString() + File.separator + uri;
- aPath = aPath.replace('/', File.separatorChar);
- aPath = aPath.replace('\\', File.separatorChar);
- if (aPath.endsWith(File.separator)) {
- aPath += IFileFolderConstants.PATH_SEPARATOR;
- }
- File file = new File(aPath);
- if (file.exists() && file.isFile()) {
- return file.getAbsolutePath();
- }
- return uri;
- }
- }
- }
- return uri;
- }
-
- /**
- * Returns the active workbench window.
- *
- * @return the active workbench window. this can be null but I've never seen
- * it.
- */
- private static IWorkbenchWindow getActiveWorkbenchWindow() {
- if (PlatformUI.getWorkbench() == null) {
- return null;
- }
- return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- }
-
- /**
- * Returns the active workbench page. Note that the active page may not be
- * the one that the user perceives as active in some situations so this
- * method of obtaining the activate page should only be used if no other
- * method is available.
- *
- * @return the active workbench page
- */
- private static IWorkbenchPage getActivePage() {
- IWorkbenchWindow window = getActiveWorkbenchWindow();
- if (window == null) {
- return null;
- }
- return window.getActivePage();
- }
- /**
- * @param javaProject
- * @param parent
- * @return the IPath for a a classpath object (?)
- */
- public static IPath getPathOnClasspath(IJavaProject javaProject,
- Object parent) {
- IPath result = null;
- if (javaProject == null || parent == null) {
- return new Path(""); //$NON-NLS-1$
- }
- IClasspathEntry[] entries = javaProject.readRawClasspath();
- IPath classPath = null;
- if (parent instanceof IResource) {
- if (((javaProject != null) && !javaProject
- .isOnClasspath((IResource) parent))) {
- return new Path(""); //$NON-NLS-1$
- }
- if (parent instanceof IFile) {
- IPath elementPath = ((IFile) parent).getFullPath();
- if (((IFile) parent).getFileExtension().equalsIgnoreCase(
- IFileFolderConstants.EXT_PROPERTIES)) {
- int machings = 0;
- try {
- for (int i = 0; i < entries.length; i++) {
- // Determine whether on this classentry's path
- int n = entries[i].getPath().matchingFirstSegments(
- elementPath);
- if (n > machings) {
- // Get package name
- machings = n;
- classPath = elementPath.removeFirstSegments(
- machings).removeLastSegments(1);
- }
- }
-
- // Not on the classpath?
- if (classPath == null) {
- return null;
- } else if (classPath.segmentCount() > 0) {
- IJavaElement element = javaProject
- .findElement(classPath);
- if (element != null) {
- IPath path = element.getPath();
- if (path != null) {
- IPath path1 = path
- .removeFirstSegments(machings);
-
- String fileName = ((IFile) parent)
- .getName();
- if (fileName != null) {
- result = path1.append(fileName);
- }
- }
- }
-
- } else {
- result = ((IFile) parent).getFullPath()
- .removeFirstSegments(machings);
- }
- } catch (Exception e) {
- return null;
- }
- }
- }
- } else if (parent instanceof IJarEntryResource) {
- IPath elementPath = ((IJarEntryResource) parent).getFullPath();
- if (elementPath.getFileExtension().equalsIgnoreCase(
- IFileFolderConstants.EXT_PROPERTIES)) {
- result = elementPath;
- }
- }
- if (result != null) {
- return result;
- }
- return new Path(""); //$NON-NLS-1$
- }
-
- private PathUtil()
- {
- // utility class, no instantiation
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/PixelConverter.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/PixelConverter.java
deleted file mode 100644
index 48d5b3749..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/PixelConverter.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation 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:
- * IBM Corporation - initial API and implementation
- * Oracle -- copied into common ui codebase for JSF use
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.utils;
-
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.widgets.Control;
-
-import org.eclipse.jface.dialogs.Dialog;
-
-/**
- * @author cbateman
- *
- */
-public class PixelConverter {
-
- private final FontMetrics fFontMetrics;
-
- /**
- * @param control
- */
- public PixelConverter(Control control) {
- this(control.getFont());
- }
-
- /**
- * @param font
- */
- public PixelConverter(Font font) {
- GC gc = new GC(font.getDevice());
- gc.setFont(font);
- fFontMetrics= gc.getFontMetrics();
- gc.dispose();
- }
-
-
- /**
- * @param chars
- * @return the convert height in pixels
- */
- public int convertHeightInCharsToPixels(int chars) {
- return Dialog.convertHeightInCharsToPixels(fFontMetrics, chars);
- }
-
- /**
- * @param dlus
- * @return the pixel
- */
- public int convertHorizontalDLUsToPixels(int dlus) {
- return Dialog.convertHorizontalDLUsToPixels(fFontMetrics, dlus);
- }
-
- /**
- * @param dlus
- * @return the vertical pixels
- */
- public int convertVerticalDLUsToPixels(int dlus) {
- return Dialog.convertVerticalDLUsToPixels(fFontMetrics, dlus);
- }
-
-
- /**
- * @param chars
- * @return the pixel value
- */
- public int convertWidthInCharsToPixels(int chars) {
- return Dialog.convertWidthInCharsToPixels(fFontMetrics, chars);
- }
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/PluginImageHelper.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/PluginImageHelper.java
deleted file mode 100644
index 8ebcd0354..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/PluginImageHelper.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.utils;
-
-import java.util.HashMap;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * @author mengbo
- */
-public class PluginImageHelper {
- private static PluginImageHelper _instance = null;
-
- /**
- * Gets the instance.
- *
- * @return Returns a TaglibPluginImageHelper
- */
- public synchronized static PluginImageHelper getInstance() {
- if (_instance == null) {
- _instance = new PluginImageHelper();
- }
- return _instance;
- }
-
- // save a descriptor for each image
- private HashMap _imageDescRegistry = null;
-
- private final String PLUGIN_SEPARATOR = "^"; //$NON-NLS-1$
-
- /**
- * Creates an image from the given resource and adds the image to the image
- * registry.
- *
- * @param resource
- * @param pluginId
- * @return Image
- */
- private Image createImage(String resource, String pluginId) {
- ImageDescriptor desc = getImageDescriptor(resource, pluginId);
- Image image = null;
-
- if (desc != null) {
- image = desc.createImage();
-
- // dont add the missing image descriptor image to the image
- // registry
- if (!desc.equals(ImageDescriptor.getMissingImageDescriptor())) {
- String thePluginId = pluginId;
- if (thePluginId == null) {
- return null;
- }
- String key = thePluginId + PLUGIN_SEPARATOR + resource;
- getImageRegistry().put(key, image);
- }
- }
- return image;
- }
-
- /**
- * Creates an image descriptor from the given imageFilePath in the given
- * pluginId and adds the image descriptor to the image descriptor registry.
- * If an image descriptor could not be created, the default "missing" image
- * descriptor is returned but not added to the image descriptor registry.
- *
- * @param imageFilePath
- * @param pluginId
- * if null, look in this plugin
- * @return ImageDescriptor image descriptor for imageFilePath or default
- * "missing" image descriptor if resource could not be found
- */
- private ImageDescriptor createImageDescriptor(String imageFilePath,
- String pluginId) {
- String thePluginId = pluginId;
- if (thePluginId == null) {
- return null;
- }
-
- ImageDescriptor imageDescriptor = AbstractUIPlugin
- .imageDescriptorFromPlugin(thePluginId, imageFilePath);
- if (imageDescriptor != null) {
- String key = thePluginId + PLUGIN_SEPARATOR + imageFilePath;
- getImageDescriptorRegistry().put(key, imageDescriptor);
- } else {
- imageDescriptor = ImageDescriptor.getMissingImageDescriptor();
- }
-
- return imageDescriptor;
- }
-
- /**
- * Retrieves the image associated with resource from the image registry. If
- * the image cannot be retrieved, attempt to find and load the image at the
- * location specified in resource.
- *
- * @param resource
- * the image to retrieve
- * @return Image the image associated with resource or null if one could not
- * be found
- */
- public Image getImage(String resource) {
- return getImage(resource, null);
- }
-
- /**
- * Retrieves the image associated with resource from the image registry. If
- * the image cannot be retrieved, attempt to find and load the image at the
- * location specified in resource.
- *
- * @param resource
- * the image to retrieve
- * @param pluginId
- * @return Image the image associated with resource or null if one could not
- * be found
- */
- public Image getImage(String resource, String pluginId) {
- String thePluginId = pluginId;
- if (thePluginId == null) {
- return null;
- }
-
- String key = thePluginId + PLUGIN_SEPARATOR + resource;
-
- Image image = getImageRegistry().get(key);
- if (image == null) {
- // create an image
- image = createImage(resource, pluginId);
- }
- return image;
- }
-
- /**
- * Retrieves the image descriptor associated with resource from the image
- * descriptor registry. If the image descriptor cannot be retrieved, attempt
- * to find and load the image descriptor at the location specified in
- * resource.
- *
- * @param resource
- * the image descriptor to retrieve
- * @return ImageDescriptor the image descriptor assocated with resource or
- * the default "missing" image descriptor if one could not be found
- */
- public ImageDescriptor getImageDescriptor(String resource) {
- return getImageDescriptor(resource, null);
- }
-
- /**
- * Retrieves the image descriptor associated with resource in pluginId from
- * the image descriptor registry. If the image descriptor cannot be
- * retrieved, attempt to find and load the image descriptor at the location
- * specified in resource in pluginId.
- *
- * @param resource
- * the image descriptor to retrieve
- * @param pluginId
- * the plugin the resource is located. if null, use look in this
- * plugin
- * @return ImageDescriptor the image descriptor assocated with resource or
- * the default "missing" image descriptor if one could not be found
- */
- public ImageDescriptor getImageDescriptor(String resource, String pluginId) {
- ImageDescriptor imageDescriptor = null;
- String thePluginId = pluginId;
- if (thePluginId == null) {
- return null;
- }
-
- String key = thePluginId + PLUGIN_SEPARATOR + resource;
- Object o = getImageDescriptorRegistry().get(key);
- if (o == null) {
- // create a descriptor
- imageDescriptor = createImageDescriptor(resource, pluginId);
- } else {
- imageDescriptor = (ImageDescriptor) o;
- }
- return imageDescriptor;
- }
-
- /**
- * Returns the image descriptor registry for this plugin.
- *
- * @return HashMap - image descriptor registry for this plugin
- */
- private HashMap getImageDescriptorRegistry() {
- if (_imageDescRegistry == null) {
- _imageDescRegistry = new HashMap();
- }
- return _imageDescRegistry;
- }
-
- /**
- * Returns the image registry for this plugin.
- *
- * @return ImageRegistry - image registry for this plugin
- */
- private ImageRegistry getImageRegistry() {
- return JFaceResources.getImageRegistry();
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/PropertyUtils.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/PropertyUtils.java
deleted file mode 100644
index 47bded01a..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/PropertyUtils.java
+++ /dev/null
@@ -1,789 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.utils;
-
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.Point;
-import java.awt.Rectangle;
-import java.awt.Toolkit;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.MissingResourceException;
-import java.util.Properties;
-import java.util.ResourceBundle;
-import java.util.StringTokenizer;
-
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-
-/**
- * The main purpose of this class is to give better access methods for property
- * and resource bundle access.
- *
- * @author mengbo
- */
-public final class PropertyUtils {
-
- private static final String ENCODED_CHAR_PERCENT = "%25"; //$NON-NLS-1$
- private static final String ENCODED_CHAR_CARRIAGE_RETURN = "%0d"; //$NON-NLS-1$
- private static final String ENCODED_CHAR_TAB = "%09"; //$NON-NLS-1$
- private static final String ENCODED_CHAR_NEWLINE = "%0a"; //$NON-NLS-1$
- private static final String ENCODED_CHAR_SPACE = "%20"; //$NON-NLS-1$
- private static final String ENCODED_CHAR_COLON = "%3a"; //$NON-NLS-1$
- private static final String ENCODED_CHAR_EQUALS = "%3d"; //$NON-NLS-1$
-
-
- // WARNING: There can be NO static logging line here since the logger uses
- // this class to figure out the preferences
- // for the logging system. "Logging" an error here would be useless since
- // you might be setting up the logging system
- // via a call to PropertyUtils.getServerProperty() instead it uses
- // "System.err.println".
-
- // This is the name for the properties file.
- // The prop-name will be prepended to this string....
- private static final String NAME_PROPERTIES = ".props"; //$NON-NLS-1$
-
- private static final String STR_BOUNDS_END = ".bounds"; // assumes the //$NON-NLS-1$
-
- // window name or
- // name list is
- // prepended
-
- // //////////////////////////////////////////////////////////////////////////
- // Property get methods.
- // //////////////////////////////////////////////////////////////////////////
- /**
- * @param props
- * @param key
- * @param theDefault
- * @return the property
- */
- public static String getProperty(Properties props, String key,
- String theDefault) {
- try {
- String value = props.getProperty(key, theDefault);
- if ((value != null) && (value.length() == 0)) {
- value = null;
- }
- // check again for null, since some versions of the jdk ignore the
- // default
- // if an empty property exists.
- if (value == null) {
- value = theDefault;
- }
- return value;
- } catch (Exception ee) {
- return theDefault;
- }
- }
-
- /**
- * @param props
- * @param key
- * @return the value for key in props, may return null
- */
- public static String getProperty(Properties props, String key) {
- try {
- String value = props.getProperty(key);
- if ((value != null) && (value.length() == 0)) {
- value = null;
- }
- return value;
- } catch (Exception ee) {
- return null;
- }
- }
-
- /**
- * @param props
- * @param key
- * @param defaultValue
- * @param minimumValue
- * @return the integer property value for key, or defaultValue
- * if none. Enforces minimumValue in all cases
- */
- public static int getPropertyValue(Properties props, String key,
- int defaultValue, int minimumValue) {
- int theValue = getPropertyValue(props, key, defaultValue);
-
- if (theValue < minimumValue) {
- theValue = minimumValue;
- }
- return theValue;
- }
-
- /**
- * @param props
- * @param key
- * @param defaultValue
- * @return the integer value for key in props or defaultValue if none
- */
- public static int getPropertyValue(Properties props, String key,
- int defaultValue) {
- String stringValue = getProperty(props, key);
- if (stringValue != null) {
- try {
- return Integer.parseInt(stringValue);
- } catch (NumberFormatException ee)// NOPMD
- {
- // the property value maybe an invalid value, the editor should
- // show these to user.
- }
- }
- return defaultValue;
- }
-
- /**
- * @param props
- * @param key
- * @param defaultValue
- * @return the long value for key props or defaultValue if none
- */
- public static long getPropertyLongValue(Properties props, String key,
- long defaultValue) {
- String stringValue = getProperty(props, key);
- if (stringValue != null) {
- try {
- return Long.parseLong(stringValue);
- } catch (NumberFormatException ee)// NOPMD
- {
- // the property value maybe an invalid value, the editor should
- // show these to user.
- }
- }
- return defaultValue;
- }
-
- /**
- * @param props
- * @param key
- * @param bDefault
- * @return true if props has a value for key
- */
- public static boolean isProperty(Properties props, String key,
- boolean bDefault) {
- return getProperty(props, key, "" + bDefault).equals("" + true); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * @param props
- * @param key
- * @return the string values in props for key tokenized from
- * a comma-separated string
- */
- public static String[] getPropertyStrings(Properties props, String key) {
- String tokenString = getProperty(props, key);
-
- if (tokenString == null) {
- return new String[0];
- }
- StringTokenizer tokenizer = new StringTokenizer(tokenString, ","); //$NON-NLS-1$
- String[] pNames = new String[tokenizer.countTokens()];
-
- for (int ii = 0; ii < pNames.length; ii++) {
- pNames[ii] = ((String) tokenizer.nextElement()).trim();
- }
- return pNames;
- }
-
- // //////////////////////////////////////////////////////////////////////////
- // Resource bundle get methods.
- // //////////////////////////////////////////////////////////////////////////
- /**
- * @param bundle
- * @param key
- * @param theDefault
- * @return the string value from bundle for key or default if none
- */
- public static String getResourceProperty(ResourceBundle bundle, String key,
- String theDefault) {
- try {
- String value = bundle.getString(key);
- if ((value == null) || (value.length() == 0)) {
- value = theDefault;
- }
- return value;
- }
- catch(NullPointerException npe)
- {
- return theDefault;
- }
- catch (MissingResourceException mre)
- {
- return theDefault;
- }
- catch (ClassCastException cce)
- {
- return theDefault;
- }
- }
-
- /**
- * @param bundle
- * @param key
- * @return the value for key in bundle or null if none
- */
- public static String getResourceProperty(ResourceBundle bundle, String key) {
- try
- {
- String value = bundle.getString(key);
- if ((value != null) && (value.length() == 0))
- {
- value = null;
- }
- return value;
- }
- catch(NullPointerException npe)
- {
- return null;
- }
- catch (MissingResourceException mre)
- {
- return null;
- }
- catch (ClassCastException cce)
- {
- return null;
- }
- }
-
- /**
- * @param bundle
- * @param key
- * @param defaultValue
- * @param minimumValue
- * @return the integer value for key in bundle or defaultValue if none
- * Enforces minimum value in all cases
- */
- public static int getResourcePropertyValue(ResourceBundle bundle,
- String key, int defaultValue, int minimumValue) {
- int theValue = getResourcePropertyValue(bundle, key, defaultValue);
-
- if (theValue < minimumValue) {
- theValue = minimumValue;
- }
- return theValue;
- }
-
- /**
- * @param bundle
- * @param key
- * @param defaultValue
- * @return the integer value for key in bundle or defaultValue if none
- */
- public static int getResourcePropertyValue(ResourceBundle bundle,
- String key, int defaultValue) {
- String stringValue = getResourceProperty(bundle, key);
- if (stringValue != null) {
- try {
- return Integer.parseInt(stringValue);
- } catch (NumberFormatException ee)// NOPMD
- {
- // the property value maybe an invalid value, the editor should
- // show these to user.
- }
- }
- return defaultValue;
- }
-
- /**
- * @param bundle
- * @param key
- * @param defaultValue
- * @return the long value for key in bundle or default value if none
- */
- public static long getResourcePropertyLongValue(ResourceBundle bundle,
- String key, long defaultValue) {
- String stringValue = getResourceProperty(bundle, key);
- if (stringValue != null) {
- try {
- return Long.parseLong(stringValue);
- } catch (NumberFormatException ee)// NOPMD
- {
- // the property value maybe an invalid value, the editor should
- // show these to user.
- }
- }
- return defaultValue;
- }
-
- /**
- * @param bundle
- * @param key
- * @param bDefault
- * @return true if bundle has a value for key
- */
- public static boolean isResourceProperty(ResourceBundle bundle, String key,
- boolean bDefault) {
- return getResourceProperty(bundle, key, "" + bDefault) //$NON-NLS-1$
- .equals("" + true); //$NON-NLS-1$
- }
-
- // ///////////////////////////////////////////////////////////////////////
- // Property misc routines
- // ///////////////////////////////////////////////////////////////////////
- /**
- * @param theName
- * @return the encoded name
- */
- public static String encodeName(String theName) {
- int theSize = theName.length();
- StringBuffer encoded = new StringBuffer(theSize);
- char ch;
-
- for (int ii = 0; ii < theSize; ii++) {
- ch = theName.charAt(ii);
- switch (ch) {
- // these are the set of illegal characters in a Property name
- case '=': // %3d
- encoded.append(ENCODED_CHAR_EQUALS);
- break;
- case ':': // %3a
- encoded.append(ENCODED_CHAR_COLON);
- break;
- case ' ': // %20
- encoded.append(ENCODED_CHAR_SPACE);
- break;
- case '\n': // %0a
- encoded.append(ENCODED_CHAR_NEWLINE);
- break;
- case '\t': // %09
- encoded.append(ENCODED_CHAR_TAB);
- break;
- case '\r': // %0d
- encoded.append(ENCODED_CHAR_CARRIAGE_RETURN);
- break;
- case '%': // %25
- // added because its our encoding flag
- encoded.append(ENCODED_CHAR_PERCENT);
- break;
- default:
- encoded.append(ch);
- break;
- }
- }
-
- return encoded.toString();
- }
-
- /**
- * @param theName
- * @return the decoded name
- */
- public static String decodeName(String theName) {
- int theSize = theName.length();
- int kk;
- StringBuffer decoded = new StringBuffer(theSize);
- char ch;
-
- for (int ii = 0; ii < theSize; ii++) {
- ch = theName.charAt(ii);
- if (ch == '%') {
- ch = theName.charAt(++ii);
- kk = Character.digit(ch, 16);
- kk *= 16;
- ch = theName.charAt(++ii);
- kk += Character.digit(ch, 16);
- decoded.append((char) kk);
- } else {
- decoded.append(ch);
- }
- }
-
- return decoded.toString();
- }
-
- /**
- * @param propName
- * @return the properties
- * @throws IOException
- * @throws FileNotFoundException
- */
- public static Properties openProperties(String propName)
- throws IOException, FileNotFoundException {
- return openProperties(propName, null, true);
- }
-
- /**
- * @param propName
- * @param propDefaults
- * @return the properties
- * @throws IOException
- * @throws FileNotFoundException
- */
- public static Properties openProperties(String propName,
- Properties propDefaults) throws IOException, FileNotFoundException {
- return openProperties(propName, propDefaults, true);
- }
-
- /**
- * @param propName
- * @param propDefaults
- * @param bCreatePropertiesPathname
- * @return the properties
- * @throws IOException
- * @throws FileNotFoundException
- */
- public static Properties openProperties(String propName,
- Properties propDefaults, boolean bCreatePropertiesPathname)
- throws IOException, FileNotFoundException {
- Properties theProperties = new Properties(propDefaults);
-
- try {
- String propertiesFilename = bCreatePropertiesPathname ? getPropertiesPathname(propName)
- : propName;
- InputStream theStream = new FileInputStream(propertiesFilename);
- theProperties.load(theStream);
- theStream.close();
- } catch (FileNotFoundException ee) {
- if (propDefaults == null) {
- throw ee;
- }
- } catch (IOException ee) {
- if (propDefaults == null) {
- throw ee;
- }
- }
-
- return theProperties;
- }
-
- /**
- * Combines two properties objects, with the second one as the default
- * properties
- *
- * @param localProperties
- * @param defaultProperties
- * @return the combined properties
- * @throws IOException
- */
- public static Properties combineProperties(Properties localProperties,
- Properties defaultProperties) throws IOException {
- Properties theNewProperties = new Properties();
-
- ByteArrayOutputStream os = new ByteArrayOutputStream();
- defaultProperties.store(os, ""); //$NON-NLS-1$
- localProperties.store(os, ""); //$NON-NLS-1$
- byte[] theData = os.toByteArray();
- ByteArrayInputStream is = new ByteArrayInputStream(theData);
- theNewProperties.load(is);
-
- return theNewProperties;
- }
-
- /**
- * @param theFilename
- * @return the encoded file name
- */
- public static String encodeFilename(String theFilename) {
- // make theFilename legal on the local system....
- String theSeparator = System.getProperty("file.separator"); //$NON-NLS-1$
- // replace all occurrances of the file separator with a ' '
- for (int ii = 0; ii < theSeparator.length(); ii++) {
- char theChar = theSeparator.charAt(ii);
- theFilename = theFilename.replace(theChar, ' ');
- }
-
- return theFilename;
- }
-
- /**
- * @param baseName
- * @return the properties path
- */
- public static String getPropertiesPathname(String baseName) {
- if (baseName.endsWith(NAME_PROPERTIES)) {
- return System.getProperty("user.dir") //$NON-NLS-1$
- + System.getProperty("file.separator") //$NON-NLS-1$
- + encodeFilename(baseName);
- }
- return System.getProperty("user.dir") //$NON-NLS-1$
- + System.getProperty("file.separator") //$NON-NLS-1$
- + encodeFilename(baseName) + NAME_PROPERTIES;
- }
-
- // /////////////////////////////////////////////////////////////////////////
- // These are generic routines that are used to get/set/save window bounds
-
- private static final int INSET = 40;
-
- /**
- * Set the initial bounds (size & location) of a component. This will get
- * the location from the preferences file based on the values of the "names"
- * parameter. These values will be encoded to make a legal properties name,
- * joined togther with ".", and the value STR_BOUNDS_END will be appended.
- * The resulting name will be used to obtain the intial bounds value from
- * the properties file, which will be decoded and the specified component
- * will then be set to that value.
- * @param props
- * @param theComponent
- * @param names
- * @param defaultValue
- */
- public static void setComponentBounds(Properties props,
- Component theComponent, String names[], String defaultValue) {
- setComponentBounds(props, theComponent, names, defaultValue, false);
- }
-
- /**
- * @param props
- * @param theComponent
- * @param names
- * @param defaultValue
- * @param bEnsureDesktopVisibility
- */
- public static void setComponentBounds(Properties props,
- Component theComponent, String names[], String defaultValue,
- boolean bEnsureDesktopVisibility) {
- String tmpString = getComponentPropertyName(names, STR_BOUNDS_END);
- setComponentBounds(props, theComponent, tmpString, defaultValue,
- bEnsureDesktopVisibility);
- }
-
- /**
- * @param props
- * @param theComponent
- * @param thePropertyName
- * @param defaultValue
- */
- public static void setComponentBounds(Properties props,
- Component theComponent, String thePropertyName, String defaultValue) {
- setComponentBounds(props, theComponent, thePropertyName, defaultValue,
- false);
- }
-
- /**
- * @param props
- * @param theComponent
- * @param thePropertyName
- * @param defaultValue
- * @param bEnsureDesktopVisibility
- */
- public static void setComponentBounds(Properties props,
- Component theComponent, String thePropertyName,
- String defaultValue, boolean bEnsureDesktopVisibility) {
- String tmpString = props.getProperty(thePropertyName, defaultValue);
- Rectangle theValue = decodeBounds(tmpString);
- theComponent.setBounds(theValue);
- if (bEnsureDesktopVisibility) {
- // make sure that this component is visible on the desktop...
- // verify that this window is visible...
- Point theLoc = theComponent.getLocation();
- // get width/height of desktop....
- Dimension portSize = new Dimension(Toolkit.getDefaultToolkit()
- .getScreenSize());
- if (theLoc.x > portSize.width) // move it to top
- theLoc.x = INSET;
- if (theLoc.y > portSize.height) // move it to left
- theLoc.y = INSET;
- theComponent.setLocation(theLoc);
- }
- }
-
- /**
- * @param props
- * @param theComponent
- * @param names
- */
- public static void saveComponentBounds(Properties props,
- Component theComponent, String names[]) {
- String tmpString = getComponentPropertyName(names, STR_BOUNDS_END);
- saveComponentBounds(props, theComponent, tmpString);
- }
-
- /**
- * @param props
- * @param theComponent
- * @param thePropertyName
- */
- public static void saveComponentBounds(Properties props,
- Component theComponent, String thePropertyName) {
- Rectangle theBounds = theComponent.getBounds();
- String theValue = encodeBounds(theBounds);
- props.put(thePropertyName, theValue);
- }
-
- /**
- * @param names
- * @param subsystemName
- * @return the component property name or ""
- */
- public static String getComponentPropertyName(String names[],
- String subsystemName) {
- String tmpString = ""; //$NON-NLS-1$
-
- for (int ii = 0; ii < names.length; ii++) {
- tmpString = tmpString + (ii > 0 ? "." : "") //$NON-NLS-1$ //$NON-NLS-2$
- + PropertyUtils.encodeName(names[ii]);
- }
- if (subsystemName.startsWith(".") == false) //$NON-NLS-1$
- tmpString += "."; //$NON-NLS-1$
- tmpString = tmpString + subsystemName;
- return tmpString;
- }
-
- /**
- * Decode the comma separated values stored in sBounds. This method is
- * normally called to decode the location/size of a component which has been
- * saved into a Properties object. See encodeBounds(); Order of items in the
- * string is (x, y, w, h)
- * @param sBounds
- * @return the rectangle
- */
- public static Rectangle decodeBounds(String sBounds) {
- int index;
- int ii;
- int theValue[] = new int[4];
- String tmpString;
- String restString = sBounds;
-
- for (ii = 0; ii < 4; ii++) {
- theValue[ii] = 0;
- }
- try {
- for (ii = 0; ii < 4; ii++) {
- index = restString.indexOf(","); //$NON-NLS-1$
- if (index > 0) {
- tmpString = restString.substring(0, index);
- restString = restString.substring(index + 1);
- } else {
- tmpString = restString; // should only happen on the last
- // one....
- restString = null; // will cause an exception if not last
- // one...
- }
- theValue[ii] = Integer.valueOf(tmpString).intValue();
- }
- } catch (Exception ee)// NOPMD
- {
- // the property value maybe an invalid value, the editor should show
- // these to user.
- }
-
- return new Rectangle(theValue[0], theValue[1], theValue[2], theValue[3]);
- }
-
- /**
- * * Encode the bounds of a component into a comma separated list * that is
- * appropriate for storing in a Properties object. * See decodeBounds();
- * @param rBounds
- * @return the encoded bounds
- */
- public static String encodeBounds(Rectangle rBounds) {
- return "" + rBounds.x + "," + rBounds.y + "," + rBounds.width + "," //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- + rBounds.height;
- }
-
- /**
- * Methods for creating Properties objects from strings.
- *
- * Then "Encoded" versions are used on values that are stored into a
- * properties file (think of them as sub-properties). They do the encoding
- * necessary to turn a properties object into a string that has legal
- * "value" syntax (they actually do more than they need to, but its all
- * non-destructive).
- * @param thePropertyString
- * @return the properties from the string
- * @throws IOException
- */
- public static Properties getPropertiesFromString(String thePropertyString)
- throws IOException {
- if (thePropertyString == null)
- return null;
- ByteArrayInputStream in = new ByteArrayInputStream(thePropertyString
- .getBytes());
-
- Properties props = new Properties();
- props.load(in); // throws IOException
- in = null;
- return props;
- }
-
- /**
- * @param theEncodedPropertyString
- * @return the properties
- * @throws IOException
- */
- public static Properties getPropertiesFromEncodedString(
- String theEncodedPropertyString) throws IOException {
- if (theEncodedPropertyString == null)
- return null;
- return (getPropertiesFromString(decodeName(theEncodedPropertyString)));
- }
-
- /**
- * @param theEncodedPropertyString
- * @return the properties
- */
- public static Properties encodedStringToProperties(
- String theEncodedPropertyString) {
- try {
- return getPropertiesFromEncodedString(theEncodedPropertyString);
- } catch (IOException ee) {
- return null;
- }
- }
-
- /**
- * @param props
- * @param comment
- * @return the string
- * @throws IOException
- */
- public static String savePropertiesToString(Properties props, String comment)
- throws IOException {
- if (props == null)
- return null;
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- props.store(out, comment);
- String tmpString = out.toString();
- out = null;
- return tmpString;
- }
-
- /**
- * @param props
- * @param comment
- * @return the encoded string
- * @throws IOException
- */
- public static String savePropertiesToEncodedString(Properties props,
- String comment) throws IOException {
- if (props == null)
- return null;
- return encodeName(savePropertiesToString(props, comment));
- }
-
- /**
- * @param props
- * @return the encoded string
- */
- public static String propertiesToEncodedString(Properties props) {
- try {
- return savePropertiesToEncodedString(props, ""); //$NON-NLS-1$
- } catch (IOException ee)// NOPMD
- {
- JSFUICommonPlugin.getLogger(PropertyUtils.class).error("saving properties", ee); //$NON-NLS-1$
- }
- return null;
- }
-
- private PropertyUtils()
- {
- // no instantiation
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/ResourceUtils.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/ResourceUtils.java
deleted file mode 100644
index e35ee83ab..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/ResourceUtils.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.utils;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.jst.jsf.common.ui.internal.logging.Logger;
-
-/**
- * Give easy access to a resource bundle.
- *
- * @author mengbo
- */
-public abstract class ResourceUtils {
- private static final String LOG_RESOURCE_UTILS_MSG_KEY = "log.ResourceUtils"; //$NON-NLS-1$
- private static Logger _log = JSFUICommonPlugin.getLogger(ResourceUtils.class);
- /**
- * the resource bundle accessible by all children
- */
- protected ResourceBundle _resources;
-
- /**
- * Empty Constructor.
- */
- protected ResourceUtils() {
- // restrict instantiation
- }
-
- /**
- * Easy way to set the bundle and get a fatal log messages and an alert if
- * the resource bundle is not found.
- *
- * @param resource
- * @param bundleLocation
- */
- protected void setBundle(ResourceBundle resource, String bundleLocation) {
- _resources = resource;
- if (_resources == null) {
- // log.ResourceUtils=Missing Resource Bundle "{0}".
- _log.error(LOG_RESOURCE_UTILS_MSG_KEY, bundleLocation);
- // pluginName=Web Application Development Common
- JSFUICommonPlugin.getAlerts().error("pluginName", LOG_RESOURCE_UTILS_MSG_KEY, //$NON-NLS-1$
- bundleLocation);
- }
- }
-
- /**
- * Get the property defined in the resource bundle for the given key. This
- * property should be an integer. If none is defined
- * (MissingResourceException), return the default.
- *
- * @param key
- * the key in the resource bundle.
- * @param defaultValue
- * default int to return if no value is found for the key.
- * @return the integer value for key or defaultValue if none
- */
- public int getValue(String key, int defaultValue) {
- String stringValue = getString(key);
- if (stringValue != null) {
- try {
- return Integer.parseInt(stringValue);
- } catch (NumberFormatException ee)// NOPMD
- {
- // the property value maybe an invalid value, the editor should
- // show these to user.
- }
- }
- return defaultValue;
- }
-
- /**
- * Get the property defined in the resource bundle for the given key. This
- * property should be an long. If none is defined
- * (MissingResourceException), return the default.
- *
- * @param key
- * the key in the resource bundle.
- * @param defaultValue
- * default long to return if no value is found for the key.
- * @return the long value for key or defaultValue if none
- */
- public long getValue(String key, long defaultValue) {
- String stringValue = getString(key);
- if (stringValue != null) {
- try {
- return Long.parseLong(stringValue);
- } catch (NumberFormatException ee)// NOPMD
- {
- // the property value maybe an invalid value, the editor should
- // show these to user.
- }
- }
- return defaultValue;
- }
-
- /**
- * Get the property defined in the resource bundle for the given key. This
- * property should be boolean ("true" of "false"). If none is defined
- * (MissingResourceException), return the default.
- *
- * @param key
- * the key in the resource bundle.
- * @return true if there is a resource corresponding to key
- */
- public boolean isResource(String key) {
- return getString(key).equals("" + true); //$NON-NLS-1$
- }
-
- /**
- * Get the property defined in the resource bundle for the given key. If
- * none is defined (MissingResourceException), return null.
- *
- * @param key
- * the key in the resource bundle.
- * @return the string value for key or key if not found
- */
- public String getString(String key) {
- try {
- return _resources.getString(key);
- } catch (MissingResourceException ee) {
- return key;
- }
- }
-
- /**
- * Build a formated string from the resource bundle.
- *
- * @param key
- * the key into the resource bundle that has the formated string.
- * @param arg0
- * the first argument.
- * @return the formated string with the argument inline.
- */
- public String getString(String key, Object arg0) {
- Object[] args = new Object[1];
- args[0] = arg0;
-
- MessageFormat formatter = new MessageFormat(getString(key));
- return formatter.format(args);
- }
-
- /**
- * Build a formated string from the resource bundle.
- *
- * @param key
- * the key into the resource bundle that has the formated string.
- * @param arg0
- * the first argument.
- * @param arg1
- * the second argument.
- * @return the formated string with the argument inline.
- */
- public String getString(String key, Object arg0, Object arg1) {
- Object[] args = new Object[2];
- args[0] = arg0;
- args[1] = arg1;
-
- MessageFormat formatter = new MessageFormat(getString(key));
- return formatter.format(args);
- }
-
- /**
- * Build a formated string from the resource bundle.
- *
- * @param key
- * the key into the resource bundle that has the formated string.
- * @param arg0
- * the first argument.
- * @param arg1
- * the second argument.
- * @param arg2
- * the third argument.
- * @return the formated string with the argument inline.
- */
- public String getString(String key, Object arg0, Object arg1, Object arg2) {
- Object[] args = new Object[3];
- args[0] = arg0;
- args[1] = arg1;
- args[2] = arg2;
-
- MessageFormat formatter = new MessageFormat(getString(key));
- return formatter.format(args);
- }
-
- /**
- * Build a formated string from the resource bundle.
- *
- * @param key
- * the key into the resource bundle that has the formated string.
- * @param arg0
- * the first argument.
- * @param arg1
- * the second argument.
- * @param arg2
- * the third argument.
- * @param arg3
- * the forth argument.
- * @return the formated string with the argument inline.
- */
- public String getString(String key, Object arg0, Object arg1, Object arg2,
- Object arg3) {
- Object[] args = new Object[4];
- args[0] = arg0;
- args[1] = arg1;
- args[2] = arg2;
- args[3] = arg3;
-
- MessageFormat formatter = new MessageFormat(getString(key));
- return formatter.format(args);
- }
-
- /**
- * Build a formated string from the resource bundle.
- *
- * @param key
- * the key into the resource bundle that has the formated string.
- * @param arg0
- * the first argument.
- * @param arg1
- * the second argument.
- * @param arg2
- * the third argument.
- * @param arg3
- * the forth argument.
- * @param arg4
- * the forth argument.
- * @return the formated string with the argument inline.
- */
- public String getString(String key, Object arg0, Object arg1, Object arg2,
- Object arg3, Object arg4) {
- Object[] args = new Object[5];
- args[0] = arg0;
- args[1] = arg1;
- args[2] = arg2;
- args[3] = arg3;
- args[4] = arg4;
-
- MessageFormat formatter = new MessageFormat(getString(key));
- return formatter.format(args);
- }
-
- /**
- * Build a formated string from the resource bundle.
- *
- * @param key
- * the key into the resource bundle that has the formated string.
- * @param args
- * an array of arguments
- * @return the formated string with the argument inline.
- */
- public String getString(String key, Object[] args) {
- MessageFormat formatter = new MessageFormat(getString(key));
- return formatter.format(args);
- }
-
- /**
- * Use in the try-finally idiom for inputStream to ensure close
- * and suppress exceptions on close
- * @param inputStream
- */
- public static void ensureClosed(InputStream inputStream) {
- if (inputStream != null) {
- try {
- inputStream.close();
- } catch (IOException e) {
- // Ignore
- }
- }
-
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/StringUtil.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/StringUtil.java
deleted file mode 100644
index e914b600c..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/StringUtil.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.utils;
-
-import java.util.regex.Pattern;
-
-/**
- * This is tool class for String processing.
- *
- * @author mengbo
- */
-public class StringUtil {
-
- // pattern to find all end-of-paragraph and end-of-line html tags
- // so they can be converted to newlines
- final private static Pattern htmlToNewline = Pattern.compile("</p>|<br>"); //$NON-NLS-1$
-
- // pattern to strip all <x> and </x> HTML tags
- final private static Pattern removeHTMLTags = Pattern.compile("<[/?\\w\\s=\"\\.\\#]+>"); //$NON-NLS-1$
-
- // pattern to find all runs of spaces longer than one
- final private static Pattern trimInteriorWhitespace = Pattern.compile("[ ]+"); //$NON-NLS-1$
-
- /**
- * Split a java variable name into words For example, "_aJavaVariable" will
- * split to "A Java Variable", "_aWTPPackageImplementation" will be "A WTP
- * Package Implementation"
- *
- * @param variable
- * @return String
- */
- public static String splitVariable(String variable) {
- StringBuffer output = new StringBuffer(""); //$NON-NLS-1$
- boolean isCapitalLeading = false;
- boolean isLastSpace = false;
-
- for (int i = 0, n = variable.length(); i < n; i++) {
- char letter = variable.charAt(i);
-
- if (letter == '_' || letter == '$') {
- output.append(" "); //$NON-NLS-1$
- isCapitalLeading = false;
- isLastSpace = true;
- continue;
- }
-
- if (Character.isLowerCase(letter)) {
- int nextIndex = i + 1;
- if (nextIndex < n) {
- char nextLetter = variable.charAt(nextIndex);
- if (Character.isUpperCase(nextLetter)) {
- if (isCapitalLeading) {
- output.append(letter);
- isLastSpace = false;
- } else {
- output.append(Character.toUpperCase(letter));
- isLastSpace = false;
- }
- if (!isLastSpace) {
- output.append(' ');
- isLastSpace = true;
- }
- isCapitalLeading = false;
- continue;
- }
- }
- }
- if (Character.isUpperCase(letter)) {
- int nextIndex = i + 1;
- if (nextIndex < n) {
- char nextLetter = variable.charAt(nextIndex);
- if (Character.isLowerCase(nextLetter)) {
- if (!isLastSpace) {
- output.append(' ');
- isLastSpace = true;
- }
- output.append(letter);
- isCapitalLeading = true;
- isLastSpace = false;
- continue;
- }
- }
- }
- if (isCapitalLeading) {
- output.append(letter);
- isLastSpace = false;
- } else {
- output.append(Character.toUpperCase(letter));
- isCapitalLeading = true;
- isLastSpace = false;
- }
- }
-
- return output.toString().trim();
- }
-
- /**
- * @param str1
- * @param str2
- * @return boolean
- *
- * Check if two strings match or not if str1=null and str2=null, it will
- * return true
- */
- public static boolean isSameString(String str1, String str2) {
- if (str1 == null) {
- return str2 == null;
- }
- return str1.equals(str2);
- }
-
- /**
- *
- * @param text
- * @return String Filter and convert a string, or normalize a string For
- * example,
- * <p>
- * test
- * </p>
- * test1<a/> will be converted to: test\ntest1
- *
- */
- public static String filterConvertString(String text) {
- if (text == null) {
- return ""; //$NON-NLS-1$
- }
-
- String result = htmlToNewline.matcher(text).replaceAll("\n"); //$NON-NLS-1$
- result = removeHTMLTags.matcher(result).replaceAll(""); //$NON-NLS-1$
- result = trimInteriorWhitespace.matcher(result).replaceAll(" "); //$NON-NLS-1$
-
- return result;
- }
-
- /**
- * Determine whether a string is empty or not Example: null string -> return
- * true; Example: "" string -> return true; Otherwise, will return false;
- * @param str
- *
- * @return true if str is null or empty
- */
- public static boolean isEmptyString(String str) {
- if (str == null || str.length() == 0) {
- return true;
- }
- return false;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/StyleCombo.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/StyleCombo.java
deleted file mode 100644
index 4eccfa6d8..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/StyleCombo.java
+++ /dev/null
@@ -1,1877 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.utils;
-
-import java.util.Arrays;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.ACC;
-import org.eclipse.swt.accessibility.AccessibleAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlEvent;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.accessibility.AccessibleTextAdapter;
-import org.eclipse.swt.accessibility.AccessibleTextEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.TypedListener;
-
-/**
- * The CCombo class represents a selectable user interface object that combines
- * a text field and a list and issues notification when an item is selected from
- * the list.
- * <p>
- * Note that although this class is a subclass of <code>Composite</code>, it
- * does not make sense to add children to it, or set a layout on it.
- * </p>
- * <dl>
- * <dt><b>Styles:</b>
- * <dd>BORDER, READ_ONLY, FLAT</dd>
- * <dt><b>Events:</b>
- * <dd>Selection</dd>
- * </dl>
- */
-public final class StyleCombo extends Composite {
-
- Text text;
-
- Table table;
-
- int visibleItemCount = 4;
-
- Shell popup;
-
- Button arrow;
-
- boolean hasFocus;
-
- Listener listener, filter;
-
- Color foreground, background;
-
- Font font;
-
- String defaultValue;
-
- /**
- * Constructs a new instance of this class given its parent and a style
- * value describing its behavior and appearance.
- * <p>
- * The style value is either one of the style constants defined in class
- * <code>SWT</code> which is applicable to instances of this class, or
- * must be built by <em>bitwise OR</em>'ing together (that is, using the
- * <code>int</code> "|" operator) two or more of those <code>SWT</code>
- * style constants. The class description lists the style constants that are
- * applicable to the class. Style bits are also inherited from superclasses.
- * </p>
- *
- * @param parent
- * a widget which will be the parent of the new instance (cannot
- * be null)
- * @param style
- * the style of widget to construct
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the parent</li>
- * </ul>
- *
- * @see SWT#BORDER
- * @see SWT#READ_ONLY
- * @see SWT#FLAT
- */
- public StyleCombo(Composite parent, int style) {
- super(parent, style = checkStyle(style));
-
- listener = new Listener() {
- public void handleEvent(Event event) {
- if (popup == event.widget) {
- popupEvent(event);
- return;
- }
- if (text == event.widget) {
- textEvent(event);
- return;
- }
- if (table == event.widget) {
- tableEvent(event);
- return;
- }
- if (arrow == event.widget) {
- arrowEvent(event);
- return;
- }
- if (StyleCombo.this == event.widget) {
- comboEvent(event);
- return;
- }
- if (getShell() == event.widget) {
- handleFocus(SWT.FocusOut);
- }
- }
- };
-
- filter = new Listener() {
- public void handleEvent(Event event) {
- Shell shell = ((Control) event.widget).getShell();
- if (shell == StyleCombo.this.getShell()) {
- handleFocus(SWT.FocusOut);
- }
- }
- };
-
- int[] comboEvents = { SWT.Dispose, SWT.Move, SWT.Resize };
- for (int i = 0; i < comboEvents.length; i++)
- this.addListener(comboEvents[i], listener);
-
- createText(style);
- createArrow(style);
-
- createPopup(null, -1);
- initAccessible();
- }
-
- /**
- * @param style
- */
- private void createArrow(int style) {
- int arrowStyle = SWT.ARROW | SWT.DOWN;
- if ((style & SWT.FLAT) != 0) {
- arrowStyle |= SWT.FLAT;
- }
- arrow = new Button(this, arrowStyle);
- int[] arrowEvents = { SWT.Selection, SWT.FocusIn };
- for (int i = 0; i < arrowEvents.length; i++) {
- arrow.addListener(arrowEvents[i], listener);
- }
- }
-
- /**
- * @param style
- */
- private void createText(int style) {
- int textStyle = SWT.SINGLE;
- if ((style & SWT.READ_ONLY) != 0) {
- textStyle |= SWT.READ_ONLY;
- }
- if ((style & SWT.FLAT) != 0) {
- textStyle |= SWT.FLAT;
- }
- text = new Text(this, textStyle);
- int[] textEvents = { SWT.KeyDown, SWT.KeyUp, SWT.Modify, SWT.MouseDown,
- SWT.MouseUp, SWT.Traverse, SWT.FocusIn };
- for (int i = 0; i < textEvents.length; i++) {
- text.addListener(textEvents[i], listener);
- }
- }
-
- static int checkStyle(int style) {
- int mask = SWT.BORDER | SWT.READ_ONLY | SWT.FLAT | SWT.LEFT_TO_RIGHT
- | SWT.RIGHT_TO_LEFT;
- return style & mask;
- }
-
- /**
- * Adds the argument to the end of the receiver's list.
- *
- * @param string
- * the new item
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_NULL_ARGUMENT - if the string is null</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- *
- * @see #add(String,int)
- */
- public void add(String string) {
- checkWidget();
- if (string == null) {
- SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- TableItem item = new TableItem(table, SWT.NONE);
- item.setText(0, string);
- }
-
- /**
- * Adds the argument to the receiver's list at the given zero-relative
- * index.
- * <p>
- * Note: To add an item at the end of the list, use the result of calling
- * <code>getItemCount()</code> as the index or use
- * <code>add(String)</code>.
- * </p>
- *
- * @param string
- * the new item
- * @param index
- * the index for the item
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_NULL_ARGUMENT - if the string is null</li>
- * <li>ERROR_INVALID_RANGE - if the index is not between 0
- * and the number of elements in the list (inclusive)</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- *
- * @see #add(String)
- */
- public void add(String string, int index) {
- checkWidget();
- if (string == null) {
- SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- TableItem item = new TableItem(table, SWT.NONE, index);
- item.setText(0, string);
- }
-
- /**
- * Adds the listener to the collection of listeners who will be notified
- * when the receiver's text is modified, by sending it one of the messages
- * defined in the <code>ModifyListener</code> interface.
- *
- * @param listener1
- * the listener which should be notified
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- *
- * @see ModifyListener
- * @see #removeModifyListener
- */
- public void addModifyListener(ModifyListener listener1) {
- checkWidget();
- if (listener1 == null) {
- SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- TypedListener typedListener = new TypedListener(listener1);
- addListener(SWT.Modify, typedListener);
- }
-
- /**
- * Adds the listener to the collection of listeners who will be notified
- * when the receiver's selection changes, by sending it one of the messages
- * defined in the <code>SelectionListener</code> interface.
- * <p>
- * <code>widgetSelected</code> is called when the combo's list selection
- * changes. <code>widgetDefaultSelected</code> is typically called when
- * ENTER is pressed the combo's text area.
- * </p>
- *
- * @param listener1
- * the listener which should be notified
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- *
- * @see SelectionListener
- * @see #removeSelectionListener
- */
- public void addSelectionListener(SelectionListener listener1) {
- checkWidget();
- if (listener1 == null) {
- SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- TypedListener typedListener = new TypedListener(listener1);
- addListener(SWT.Selection, typedListener);
- addListener(SWT.DefaultSelection, typedListener);
- }
-
- void arrowEvent(Event event) {
- switch (event.type) {
- case SWT.FocusIn: {
- handleFocus(SWT.FocusIn);
- break;
- }
- case SWT.Selection: {
- dropDown(!isDropped());
- break;
- }
- }
- }
-
- /**
- * Sets the selection in the receiver's text field to an empty selection
- * starting just before the first character. If the text field is editable,
- * this has the effect of placing the i-beam at the start of the text.
- * <p>
- * Note: To clear the selected items in the receiver's list, use
- * <code>deselectAll()</code>.
- * </p>
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- *
- * @see #deselectAll
- */
- public void clearSelection() {
- checkWidget();
- text.clearSelection();
- table.deselectAll();
- }
-
- void comboEvent(Event event) {
- switch (event.type) {
- case SWT.Dispose:
- if (popup != null && !popup.isDisposed()) {
- table.removeListener(SWT.Dispose, listener);
- popup.dispose();
- }
- Shell shell = getShell();
- shell.removeListener(SWT.Deactivate, listener);
- Display display = getDisplay();
- display.removeFilter(SWT.FocusIn, filter);
- popup = null;
- text = null;
- table = null;
- arrow = null;
- break;
- case SWT.Move:
- dropDown(false);
- break;
- case SWT.Resize:
- internalLayout(false);
- break;
- }
- }
-
- private String[] getTableItems() {
- TableItem[] items = table.getItems();
- String[] values = new String[items.length];
- for (int i = 0; i < items.length; i++) {
- values[i] = items[i].getText(0);
- }
- return values;
- }
-
- public Point computeSize(int wHint, int hHint, boolean changed) {
- checkWidget();
- int width = 0, height = 0;
- String[] items = getTableItems();
- int textWidth = 0;
- GC gc = new GC(text);
- int spacer = gc.stringExtent(" ").x; //$NON-NLS-1$
- for (int i = 0; i < items.length; i++) {
- textWidth = Math.max(gc.stringExtent(items[i]).x, textWidth);
- }
- gc.dispose();
- Point textSize = text.computeSize(SWT.DEFAULT, SWT.DEFAULT, changed);
- Point arrowSize = arrow.computeSize(SWT.DEFAULT, SWT.DEFAULT, changed);
- Point listSize = table.computeSize(wHint, SWT.DEFAULT, changed);
- int borderWidth = getBorderWidth();
-
- height = Math.max(hHint, Math.max(textSize.y, arrowSize.y) + 2
- * borderWidth);
- width = Math.max(wHint, Math.max(textWidth + 2 * spacer + arrowSize.x
- + 2 * borderWidth, listSize.x));
- return new Point(width, height);
- }
-
- void createPopup(String[] items, int selectionIndex) {
- // create shell and list
- popup = new Shell(getShell(), SWT.NO_TRIM | SWT.ON_TOP);
- table = new Table(popup, SWT.SINGLE | SWT.V_SCROLL | SWT.FULL_SELECTION);
- new TableColumn(table, SWT.LEFT);
- if (font != null) {
- table.setFont(font);
- }
- if (foreground != null) {
- table.setForeground(foreground);
- }
- if (background != null) {
- table.setBackground(background);
- }
-
- int[] popupEvents = { SWT.Close, SWT.Paint, SWT.Deactivate };
- for (int i = 0; i < popupEvents.length; i++) {
- popup.addListener(popupEvents[i], listener);
- }
- int[] listEvents = { SWT.MouseUp, SWT.Selection, SWT.Traverse,
- SWT.KeyDown, SWT.KeyUp, SWT.FocusIn, SWT.FocusOut, SWT.Dispose };
- for (int i = 0; i < listEvents.length; i++) {
- table.addListener(listEvents[i], listener);
- }
- if (items != null) {
- setItems(items);
- }
- if (selectionIndex != -1) {
- select(selectionIndex);
- }
- }
-
- /**
- * Deselects the item at the given zero-relative index in the receiver's
- * list. If the item at the index was already deselected, it remains
- * deselected. Indices that are out of range are ignored.
- *
- * @param index
- * the index of the item to deselect
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public void deselect(int index) {
- checkWidget();
- table.deselect(index);
- }
-
- /**
- * Deselects all selected items in the receiver's list.
- * <p>
- * Note: To clear the selection in the receiver's text field, use
- * <code>clearSelection()</code>.
- * </p>
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- *
- * @see #clearSelection
- */
- public void deselectAll() {
- checkWidget();
- table.deselectAll();
- }
-
- void dropDown(boolean drop) {
- if (drop == isDropped()) {
- return;
- }
- if (!drop) {
- popup.setVisible(false);
- table.getColumns()[0].setWidth(0);
- if (!isDisposed() && arrow.isFocusControl()) {
- text.setFocus();
- }
- return;
- }
-
- if (getShell() != popup.getParent()) {
- String[] items = getTableItems();
- int selectionIndex = table.getSelectionIndex();
- table.removeListener(SWT.Dispose, listener);
- popup.dispose();
- popup = null;
- table = null;
- createPopup(items, selectionIndex);
- }
-
- Point size = getSize();
- int itemCount = table.getItemCount();
- itemCount = (itemCount == 0) ? visibleItemCount : Math.min(
- visibleItemCount, itemCount);
- int itemHeight = table.getItemHeight() * itemCount;
- Point tableSize = table.computeSize(SWT.DEFAULT, itemHeight, false);
- // int tableWidth = this.getClientArea()
- table.setBounds(1, 1, Math.max(size.x - 2, tableSize.x), tableSize.y
- - table.getHorizontalBar().getSize().y + 2);
-
- int index = table.getSelectionIndex();
- if (index != -1) {
- table.setTopIndex(index);
- }
- Display display = getDisplay();
- Rectangle tableRect = table.getBounds();
- Rectangle parentRect = display.map(getParent(), null, getBounds());
- Point comboSize = getSize();
- Rectangle displayRect = getMonitor().getClientArea();
- int width = Math.max(comboSize.x, tableRect.width + 2);
- int height = tableRect.height + 2;
- int x = parentRect.x;
- int y = parentRect.y + comboSize.y;
- if (y + height > displayRect.y + displayRect.height) {
- y = parentRect.y - height;
- }
- popup.setBounds(x, y, width, height);
- popup.setVisible(true);
-
- if (table.getItemCount() > visibleItemCount) {
- table.getColumns()[0].setWidth(text.getSize().x - 2);
- } else {
- table.getColumns()[0].setWidth(table.getClientArea().width);
- }
- table.setFocus();
- }
-
- /*
- * Return the Label immediately preceding the receiver in the z-order, or
- * null if none.
- */
- Label getAssociatedLabel() {
- Control[] siblings = getParent().getChildren();
- for (int i = 0; i < siblings.length; i++) {
- if (siblings[i] == StyleCombo.this) {
- if (i > 0 && siblings[i - 1] instanceof Label) {
- return (Label) siblings[i - 1];
- }
- }
- }
- return null;
- }
-
- public Control[] getChildren() {
- checkWidget();
- return new Control[0];
- }
-
- /**
- * Gets the editable state.
- *
- * @return whether or not the reciever is editable
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- *
- * @since 3.0
- */
- public boolean getEditable() {
- checkWidget();
- return text.getEditable();
- }
-
- /**
- * Returns the item at the given, zero-relative index in the receiver's
- * list. Throws an exception if the index is out of range.
- *
- * @param index
- * the index of the item to return
- * @return the item at the given index
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_INVALID_RANGE - if the index is not between 0
- * and the number of elements in the list minus 1 (inclusive)</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public String getItem(int index) {
- checkWidget();
- return table.getItem(index).getText(0);
- }
-
- /**
- * Returns the number of items contained in the receiver's list.
- *
- * @return the number of items
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public int getItemCount() {
- checkWidget();
- return table.getItemCount();
- }
-
- /**
- * Returns the height of the area which would be used to display
- * <em>one</em> of the items in the receiver's list.
- *
- * @return the height of one item
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public int getItemHeight() {
- checkWidget();
- return table.getItemHeight();
- }
-
- /**
- * Returns an array of <code>String</code>s which are the items in the
- * receiver's list.
- * <p>
- * Note: This is not the actual structure used by the receiver to maintain
- * its list of items, so modifying the array will not affect the receiver.
- * </p>
- *
- * @return the items in the receiver's list
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public String[] getItems() {
- checkWidget();
- return getTableItems();
- }
-
- char getMnemonic(String string) {
- int index = 0;
- int length = string.length();
- do {
- while ((index < length) && (string.charAt(index) != '&')) {
- index++;
- }
- if (++index >= length) {
- return '\0';
- }
- if (string.charAt(index) != '&') {
- return string.charAt(index);
- }
- index++;
- } while (index < length);
- return '\0';
- }
-
- /**
- * Returns a <code>Point</code> whose x coordinate is the start of the
- * selection in the receiver's text field, and whose y coordinate is the end
- * of the selection. The returned values are zero-relative. An "empty"
- * selection as indicated by the the x and y coordinates having the same
- * value.
- *
- * @return a point representing the selection start and end
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public Point getSelection() {
- checkWidget();
- return text.getSelection();
- }
-
- /**
- * Returns the zero-relative index of the item which is currently selected
- * in the receiver's list, or -1 if no item is selected.
- *
- * @return the index of the selected item
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public int getSelectionIndex() {
- checkWidget();
- return table.getSelectionIndex();
- }
-
- public int getStyle() {
- int style = super.getStyle();
- style &= ~SWT.READ_ONLY;
- if (!text.getEditable()) {
- style |= SWT.READ_ONLY;
- }
- return style;
- }
-
- /**
- * Returns a string containing a copy of the contents of the receiver's text
- * field.
- *
- * @return the receiver's text
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public String getText() {
- checkWidget();
- return text.getText();
- }
-
- /**
- * Returns the height of the receivers's text field.
- *
- * @return the text height
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public int getTextHeight() {
- checkWidget();
- return text.getLineHeight();
- }
-
- /**
- * Returns the maximum number of characters that the receiver's text field
- * is capable of holding. If this has not been changed by
- * <code>setTextLimit()</code>, it will be the constant
- * <code>Combo.LIMIT</code>.
- *
- * @return the text limit
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public int getTextLimit() {
- checkWidget();
- return text.getTextLimit();
- }
-
- /**
- * Gets the number of items that are visible in the drop down portion of the
- * receiver's list.
- *
- * @return the number of items that are visible
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- *
- * @since 3.0
- */
- public int getVisibleItemCount() {
- checkWidget();
- return visibleItemCount;
- }
-
- void handleFocus(int type) {
- if (isDisposed()) {
- return;
- }
- switch (type) {
- case SWT.FocusIn: {
- if (hasFocus) {
- return;
- }
- if (getEditable()) {
- text.selectAll();
- }
- hasFocus = true;
- Shell shell = getShell();
- shell.removeListener(SWT.Deactivate, listener);
- shell.addListener(SWT.Deactivate, listener);
- Display display = getDisplay();
- display.removeFilter(SWT.FocusIn, filter);
- display.addFilter(SWT.FocusIn, filter);
- Event e = new Event();
- notifyListeners(SWT.FocusIn, e);
- break;
- }
- case SWT.FocusOut: {
- if (!hasFocus) {
- return;
- }
- Control focusControl = getDisplay().getFocusControl();
- if (focusControl == arrow || focusControl == table
- || focusControl == text) {
- return;
- }
- hasFocus = false;
- Shell shell = getShell();
- shell.removeListener(SWT.Deactivate, listener);
- Display display = getDisplay();
- display.removeFilter(SWT.FocusIn, filter);
- Event e = new Event();
- notifyListeners(SWT.FocusOut, e);
- break;
- }
- }
- }
-
- /**
- * Searches the receiver's list starting at the first item (index 0) until
- * an item is found that is equal to the argument, and returns the index of
- * that item. If no item is found, returns -1.
- *
- * @param string
- * the search item
- * @return the index of the item
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_NULL_ARGUMENT - if the string is null</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public int indexOf(String string) {
- checkWidget();
- if (string == null) {
- SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- return Arrays.asList(getTableItems()).indexOf(string);
- }
-
- /**
- * Searches the receiver's list starting at the given, zero-relative index
- * until an item is found that is equal to the argument, and returns the
- * index of that item. If no item is found or the starting index is out of
- * range, returns -1.
- *
- * @param string
- * the search item
- * @param start
- * the zero-relative index at which to begin the search
- * @return the index of the item
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_NULL_ARGUMENT - if the string is null</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public int indexOf(String string, int start) {
- checkWidget();
- if (string == null) {
- SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- String[] items = getTableItems();
- for (int i = start; i < items.length; i++) {
- if (items[i].equals(string)) {
- return i;
- }
- }
- return -1;
- }
-
- void initAccessible() {
- AccessibleAdapter accessibleAdapter = new AccessibleAdapter() {
- public void getName(AccessibleEvent e) {
- String name = null;
- Label label = getAssociatedLabel();
- if (label != null) {
- name = stripMnemonic(label.getText());
- }
- e.result = name;
- }
-
- public void getKeyboardShortcut(AccessibleEvent e) {
- String shortcut = null;
- Label label = getAssociatedLabel();
- if (label != null) {
- String text1 = label.getText();
- if (text1 != null) {
- char mnemonic = getMnemonic(text1);
- if (mnemonic != '\0') {
- shortcut = "Alt+" + mnemonic; //$NON-NLS-1$
- }
- }
- }
- e.result = shortcut;
- }
-
- public void getHelp(AccessibleEvent e) {
- e.result = getToolTipText();
- }
- };
- getAccessible().addAccessibleListener(accessibleAdapter);
- text.getAccessible().addAccessibleListener(accessibleAdapter);
- table.getAccessible().addAccessibleListener(accessibleAdapter);
-
- arrow.getAccessible().addAccessibleListener(new AccessibleAdapter() {
- public void getName(AccessibleEvent e) {
- e.result = isDropped() ? SWT.getMessage("SWT_Close") : SWT.getMessage("SWT_Open"); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public void getKeyboardShortcut(AccessibleEvent e) {
- e.result = "Alt+Down Arrow"; //$NON-NLS-1$
- }
-
- public void getHelp(AccessibleEvent e) {
- e.result = getToolTipText();
- }
- });
-
- getAccessible().addAccessibleTextListener(new AccessibleTextAdapter() {
- public void getCaretOffset(AccessibleTextEvent e) {
- e.offset = text.getCaretPosition();
- }
- });
-
- getAccessible().addAccessibleControlListener(
- new AccessibleControlAdapter() {
- public void getChildAtPoint(AccessibleControlEvent e) {
- Point testPoint = toControl(e.x, e.y);
- if (getBounds().contains(testPoint)) {
- e.childID = ACC.CHILDID_SELF;
- }
- }
-
- public void getLocation(AccessibleControlEvent e) {
- Rectangle location = getBounds();
- Point pt = toDisplay(location.x, location.y);
- e.x = pt.x;
- e.y = pt.y;
- e.width = location.width;
- e.height = location.height;
- }
-
- public void getChildCount(AccessibleControlEvent e) {
- e.detail = 0;
- }
-
- public void getRole(AccessibleControlEvent e) {
- e.detail = ACC.ROLE_COMBOBOX;
- }
-
- public void getState(AccessibleControlEvent e) {
- e.detail = ACC.STATE_NORMAL;
- }
-
- public void getValue(AccessibleControlEvent e) {
- e.result = getText();
- }
- });
-
- text.getAccessible().addAccessibleControlListener(
- new AccessibleControlAdapter() {
- public void getRole(AccessibleControlEvent e) {
- e.detail = text.getEditable() ? ACC.ROLE_TEXT
- : ACC.ROLE_LABEL;
- }
- });
-
- arrow.getAccessible().addAccessibleControlListener(
- new AccessibleControlAdapter() {
- public void getDefaultAction(AccessibleControlEvent e) {
- e.result = isDropped() ? SWT.getMessage("SWT_Close") : SWT.getMessage("SWT_Open"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- });
- }
-
- boolean isDropped() {
- return popup.getVisible();
- }
-
- public boolean isFocusControl() {
- checkWidget();
- if (text.isFocusControl() || arrow.isFocusControl()
- || table.isFocusControl() || popup.isFocusControl()) {
- return true;
- }
- return super.isFocusControl();
- }
-
- void internalLayout(boolean changed) {
- if (isDropped()) {
- dropDown(false);
- }
- Rectangle rect = getClientArea();
- int width = rect.width;
- int height = rect.height;
- Point arrowSize = arrow.computeSize(SWT.DEFAULT, height, changed);
- text.setBounds(0, 0, width - arrowSize.x, height);
- arrow.setBounds(width - arrowSize.x, 0, arrowSize.x, arrowSize.y);
- }
-
- void tableEvent(Event event) {
- switch (event.type) {
- case SWT.Dispose:
- if (getShell() != popup.getParent()) {
- String[] items = getTableItems();
- int selectionIndex = table.getSelectionIndex();
- popup = null;
- table = null;
- createPopup(items, selectionIndex);
- }
- break;
- case SWT.FocusIn: {
- handleFocus(SWT.FocusIn);
- break;
- }
- case SWT.MouseUp: {
- if (event.button != 1) {
- return;
- }
- dropDown(false);
- break;
- }
- case SWT.Selection: {
- int index = table.getSelectionIndex();
- if (index == -1)
- return;
- text.setText(table.getItem(index).getText());
- text.selectAll();
- table.setSelection(index);
- Event e = new Event();
- e.time = event.time;
- e.stateMask = event.stateMask;
- e.doit = event.doit;
- notifyListeners(SWT.Selection, e);
- event.doit = e.doit;
- break;
- }
- case SWT.Traverse: {
- switch (event.detail) {
- case SWT.TRAVERSE_RETURN:
- case SWT.TRAVERSE_ESCAPE:
- case SWT.TRAVERSE_ARROW_PREVIOUS:
- case SWT.TRAVERSE_ARROW_NEXT:
- event.doit = false;
- break;
- }
- Event e = new Event();
- e.time = event.time;
- e.detail = event.detail;
- e.doit = event.doit;
- e.character = event.character;
- e.keyCode = event.keyCode;
- notifyListeners(SWT.Traverse, e);
- event.doit = e.doit;
- event.detail = e.detail;
- break;
- }
- case SWT.KeyUp: {
- Event e = new Event();
- e.time = event.time;
- e.character = event.character;
- e.keyCode = event.keyCode;
- e.stateMask = event.stateMask;
- notifyListeners(SWT.KeyUp, e);
- break;
- }
- case SWT.KeyDown: {
- if (event.character == SWT.ESC) {
- // Escape key cancels popup list
- dropDown(false);
- }
- if ((event.stateMask & SWT.ALT) != 0
- && (event.keyCode == SWT.ARROW_UP || event.keyCode == SWT.ARROW_DOWN)) {
- dropDown(false);
- }
- if (event.character == SWT.CR) {
- // Enter causes default selection
- dropDown(false);
- Event e = new Event();
- e.time = event.time;
- e.stateMask = event.stateMask;
- notifyListeners(SWT.DefaultSelection, e);
- }
- // At this point the widget may have been disposed.
- // If so, do not continue.
- if (isDisposed()) {
- break;
- }
- Event e = new Event();
- e.time = event.time;
- e.character = event.character;
- e.keyCode = event.keyCode;
- e.stateMask = event.stateMask;
- notifyListeners(SWT.KeyDown, e);
- break;
-
- }
- }
- }
-
- void popupEvent(Event event) {
- switch (event.type) {
- case SWT.Paint:
- // draw black rectangle around list
- Rectangle listRect = table.getBounds();
- Color black = getDisplay().getSystemColor(SWT.COLOR_BLACK);
- event.gc.setForeground(black);
- event.gc.drawRectangle(0, 0, listRect.width + 1,
- listRect.height + 1);
- break;
- case SWT.Close:
- event.doit = false;
- dropDown(false);
- break;
- case SWT.Deactivate:
- dropDown(false);
- break;
- }
- }
-
- public void redraw() {
- super.redraw();
- text.redraw();
- arrow.redraw();
- if (popup.isVisible()) {
- table.redraw();
- }
- }
-
- public void redraw(int x, int y, int width, int height, boolean all) {
- super.redraw(x, y, width, height, true);
- }
-
- /**
- * Removes the item from the receiver's list at the given zero-relative
- * index.
- *
- * @param index
- * the index for the item
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_INVALID_RANGE - if the index is not between 0
- * and the number of elements in the list minus 1 (inclusive)</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public void remove(int index) {
- checkWidget();
- table.remove(index);
- }
-
- /**
- * Removes the items from the receiver's list which are between the given
- * zero-relative start and end indices (inclusive).
- *
- * @param start
- * the start of the range
- * @param end
- * the end of the range
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_INVALID_RANGE - if either the start or end are
- * not between 0 and the number of elements in the list minus
- * 1 (inclusive)</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public void remove(int start, int end) {
- checkWidget();
- table.remove(start, end);
- }
-
- /**
- * Searches the receiver's list starting at the first item until an item is
- * found that is equal to the argument, and removes that item from the list.
- *
- * @param string
- * the item to remove
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_NULL_ARGUMENT - if the string is null</li>
- * <li>ERROR_INVALID_ARGUMENT - if the string is not found
- * in the list</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public void remove(String string) {
- checkWidget();
- if (string == null) {
- SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- int index = Arrays.asList(getTableItems()).indexOf(string);
- table.remove(index);
- }
-
- /**
- * Removes all of the items from the receiver's list and clear the contents
- * of receiver's text field.
- * <p>
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public void removeAll() {
- checkWidget();
- text.setText(""); //$NON-NLS-1$
- table.removeAll();
- }
-
- /**
- * Removes the listener from the collection of listeners who will be
- * notified when the receiver's text is modified.
- *
- * @param listener1
- * the listener which should no longer be notified
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- *
- * @see ModifyListener
- * @see #addModifyListener
- */
- public void removeModifyListener(ModifyListener listener1) {
- checkWidget();
- if (listener1 == null) {
- SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- removeListener(SWT.Modify, listener1);
- }
-
- /**
- * Removes the listener from the collection of listeners who will be
- * notified when the receiver's selection changes.
- *
- * @param listener1
- * the listener which should no longer be notified
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- *
- * @see SelectionListener
- * @see #addSelectionListener
- */
- public void removeSelectionListener(SelectionListener listener1) {
- checkWidget();
- if (listener1 == null) {
- SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- removeListener(SWT.Selection, listener1);
- removeListener(SWT.DefaultSelection, listener1);
- }
-
- /**
- * Selects the item at the given zero-relative index in the receiver's list.
- * If the item at the index was already selected, it remains selected.
- * Indices that are out of range are ignored.
- *
- * @param index
- * the index of the item to select
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public void select(int index) {
- checkWidget();
- if (index == -1) {
- table.deselectAll();
- text.setText(""); //$NON-NLS-1$
- return;
- }
- if (0 <= index && index < table.getItemCount()) {
- if (index != getSelectionIndex()) {
- text.setText(table.getItem(index).getText());
- text.selectAll();
- table.select(index);
- table.showSelection();
- }
- }
- }
-
- public void setBackground(Color color) {
- super.setBackground(color);
- background = color;
- if (text != null) {
- text.setBackground(color);
- }
- if (table != null) {
- table.setBackground(color);
- }
- if (arrow != null) {
- arrow.setBackground(color);
- }
- }
-
- /**
- * Sets the editable state.
- *
- * @param editable
- * the new editable state
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- *
- * @since 3.0
- */
- public void setEditable(boolean editable) {
- checkWidget();
- text.setEditable(editable);
- }
-
- public void setEnabled(boolean enabled) {
- super.setEnabled(enabled);
- if (popup != null) {
- popup.setVisible(false);
- }
- if (text != null) {
- text.setEnabled(enabled);
- }
- if (arrow != null) {
- arrow.setEnabled(enabled);
- }
- }
-
- public boolean setFocus() {
- checkWidget();
- return text.setFocus();
- }
-
- public void setFont(Font font) {
- super.setFont(font);
- this.font = font;
- text.setFont(font);
- table.setFont(font);
- internalLayout(true);
- }
-
- public void setForeground(Color color) {
- super.setForeground(color);
- foreground = color;
- if (text != null) {
- text.setForeground(color);
- }
- if (table != null) {
- table.setForeground(color);
- }
- if (arrow != null) {
- arrow.setForeground(color);
- }
- }
-
- /**
- * Sets the text of the item in the receiver's list at the given
- * zero-relative index to the string argument. This is equivalent to
- * <code>remove</code>'ing the old item at the index, and then
- * <code>add</code>'ing the new item at that index.
- *
- * @param index
- * the index for the item
- * @param string
- * the new text for the item
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_INVALID_RANGE - if the index is not between 0
- * and the number of elements in the list minus 1 (inclusive)</li>
- * <li>ERROR_NULL_ARGUMENT - if the string is null</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public void setItem(int index, String string) {
- checkWidget();
- table.getItem(index).setText(0, string);
- }
-
- /**
- * Sets the receiver's list to be the given array of items.
- *
- * @param items
- * the array of items
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_NULL_ARGUMENT - if the items array is null</li>
- * <li>ERROR_INVALID_ARGUMENT - if an item in the items
- * array is null</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public void setItems(String[] items) {
- checkWidget();
- if (items == null) {
- SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
-
- for (int i = 0; i < items.length; i++) {
- TableItem item = new TableItem(table, SWT.NONE);
- if (items[i].equals(defaultValue)) {
- item.setFont(JFaceResources.getFontRegistry().getBold(
- JFaceResources.DEFAULT_FONT));
- }
- item.setText(0, items[i]);
- }
- }
-
- /**
- * Sets the layout which is associated with the receiver to be the argument
- * which may be null.
- * <p>
- * Note : No Layout can be set on this Control because it already manages
- * the size and position of its children.
- * </p>
- *
- * @param layout
- * the receiver's new layout or null
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public void setLayout(Layout layout) {
- checkWidget();
- return;
- }
-
- /**
- * Sets the selection in the receiver's text field to the range specified by
- * the argument whose x coordinate is the start of the selection and whose y
- * coordinate is the end of the selection.
- *
- * @param selection
- * a point representing the new selection start and end
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_NULL_ARGUMENT - if the point is null</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public void setSelection(Point selection) {
- checkWidget();
- if (selection == null) {
- SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- text.setSelection(selection.x, selection.y);
- }
-
- /**
- * Sets the contents of the receiver's text field to the given string.
- * <p>
- * Note: The text field in a <code>Combo</code> is typically only capable
- * of displaying a single line of text. Thus, setting the text to a string
- * containing line breaks or other special characters will probably cause it
- * to display incorrectly.
- * </p>
- *
- * @param string
- * the new text
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_NULL_ARGUMENT - if the string is null</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public void setText(String string) {
- checkWidget();
- if (string == null) {
- SWT.error(SWT.ERROR_NULL_ARGUMENT);
- }
- int index = Arrays.asList(getTableItems()).indexOf(string);
- if (index == -1) {
- table.deselectAll();
- text.setText(string);
- return;
- }
- text.setText(string);
- text.selectAll();
- table.setSelection(index);
- table.showSelection();
- }
-
- /**
- * Sets the maximum number of characters that the receiver's text field is
- * capable of holding to be the argument.
- *
- * @param limit
- * new text limit
- *
- * @exception IllegalArgumentException
- * <ul>
- * <li>ERROR_CANNOT_BE_ZERO - if the limit is zero</li>
- * </ul>
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- */
- public void setTextLimit(int limit) {
- checkWidget();
- text.setTextLimit(limit);
- }
-
- public void setToolTipText(String string) {
- checkWidget();
- super.setToolTipText(string);
- arrow.setToolTipText(string);
- text.setToolTipText(string);
- }
-
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- if (!visible) {
- popup.setVisible(false);
- }
- }
-
- /**
- * Sets the number of items that are visible in the drop down portion of the
- * receiver's list.
- *
- * @param count
- * the new number of items to be visible
- *
- * @exception org.eclipse.swt.SWTException
- * <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been
- * disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
- * thread that created the receiver</li>
- * </ul>
- *
- * @since 3.0
- */
- public void setVisibleItemCount(int count) {
- checkWidget();
- if (count < 0) {
- return;
- }
- visibleItemCount = count;
- }
-
- String stripMnemonic(String string) {
- int index = 0;
- int length = string.length();
- do {
- while ((index < length) && (string.charAt(index) != '&')) {
- index++;
- }
- if (++index >= length) {
- return string;
- }
- if (string.charAt(index) != '&') {
- return string.substring(0, index - 1)
- + string.substring(index, length);
- }
- index++;
- } while (index < length);
- return string;
- }
-
- void textEvent(Event event) {
- switch (event.type) {
- case SWT.FocusIn: {
- handleFocus(SWT.FocusIn);
- break;
- }
- case SWT.KeyDown: {
- if (event.character == SWT.CR) {
- dropDown(false);
- Event e = new Event();
- e.time = event.time;
- e.stateMask = event.stateMask;
- notifyListeners(SWT.DefaultSelection, e);
- }
- // At this point the widget may have been disposed.
- // If so, do not continue.
- if (isDisposed()) {
- break;
- }
-
- if (event.keyCode == SWT.ARROW_UP
- || event.keyCode == SWT.ARROW_DOWN) {
- event.doit = false;
- if ((event.stateMask & SWT.ALT) != 0) {
- boolean dropped = isDropped();
- text.selectAll();
- if (!dropped) {
- setFocus();
- }
- dropDown(!dropped);
- break;
- }
-
- int oldIndex = getSelectionIndex();
- if (event.keyCode == SWT.ARROW_UP) {
- select(Math.max(oldIndex - 1, 0));
- } else {
- select(Math.min(oldIndex + 1, getItemCount() - 1));
- }
- if (oldIndex != getSelectionIndex()) {
- Event e = new Event();
- e.time = event.time;
- e.stateMask = event.stateMask;
- notifyListeners(SWT.Selection, e);
- }
- // At this point the widget may have been disposed.
- // If so, do not continue.
- if (isDisposed()) {
- break;
- }
- }
-
- // Further work : Need to add support for incremental search in
- // pop up list as characters typed in text widget
-
- Event e = new Event();
- e.time = event.time;
- e.character = event.character;
- e.keyCode = event.keyCode;
- e.stateMask = event.stateMask;
- notifyListeners(SWT.KeyDown, e);
- break;
- }
- case SWT.KeyUp: {
- Event e = new Event();
- e.time = event.time;
- e.character = event.character;
- e.keyCode = event.keyCode;
- e.stateMask = event.stateMask;
- notifyListeners(SWT.KeyUp, e);
- break;
- }
- case SWT.Modify: {
- table.deselectAll();
- Event e = new Event();
- e.time = event.time;
- notifyListeners(SWT.Modify, e);
- break;
- }
- case SWT.MouseDown: {
- if (event.button != 1) {
- return;
- }
- if (text.getEditable()) {
- return;
- }
- boolean dropped = isDropped();
- text.selectAll();
- if (!dropped) {
- setFocus();
- }
- dropDown(!dropped);
- break;
- }
- case SWT.MouseUp: {
- if (event.button != 1) {
- return;
- }
- if (text.getEditable()) {
- return;
- }
- text.selectAll();
- break;
- }
- case SWT.Traverse: {
- switch (event.detail) {
- case SWT.TRAVERSE_RETURN:
- case SWT.TRAVERSE_ARROW_PREVIOUS:
- case SWT.TRAVERSE_ARROW_NEXT:
- // The enter causes default selection and
- // the arrow keys are used to manipulate the list contents so
- // do not use them for traversal.
- event.doit = false;
- break;
- }
-
- Event e = new Event();
- e.time = event.time;
- e.detail = event.detail;
- e.doit = event.doit;
- e.character = event.character;
- e.keyCode = event.keyCode;
- notifyListeners(SWT.Traverse, e);
- event.doit = e.doit;
- event.detail = e.detail;
- break;
- }
- }
- }
-
- /**
- * @param defaultValue
- */
- public void setDefaultValue(String defaultValue) {
- this.defaultValue = defaultValue;
- int index = Arrays.asList(getTableItems()).indexOf(defaultValue);
- if (index != -1) {
- table.getItem(index).setFont(
- JFaceResources.getFontRegistry().getBold(
- JFaceResources.DEFAULT_FONT));
- }
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/UTF8Util.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/UTF8Util.java
deleted file mode 100644
index 31aac196b..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/UTF8Util.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.utils;
-
-/**
- * TODO: this class doesn't seem to be in use
- * @author mengbo
- * @version 1.5
- */
-public final class UTF8Util {
- private static final char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5',
- '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
-
- /**
- * @param s
- * @return the unwound string
- */
- public static String unwindEscapeChars(String s) {
- StringBuffer sb = new StringBuffer(s.length());
- int length = s.length();
- for (int i = 0; i < length; i++) {
- char c = s.charAt(i);
- sb.append(getUnwoundString(c));
- }
- return sb.toString();
- }
-
- private static String getUnwoundString(char c) {
- switch (c) {
- case '\b':
- return "\\b";//$NON-NLS-1$
- case '\t':
- return "\\t";//$NON-NLS-1$
- case '\n':
- return "\\n";//$NON-NLS-1$
- case '\f':
- return "\\f";//$NON-NLS-1$
- case '\r':
- return "\\r";//$NON-NLS-1$
-
- // These can be used unescaped in properties file:
- case '\"':
- return "\\\"";//$NON-NLS-1$
- case '\'':
- return "\\\'";//$NON-NLS-1$
-
- case '\\':
- return "\\\\";//$NON-NLS-1$
-
- case '=':
- return "\\=";//$NON-NLS-1$
-
- // This is only done when writing to the .properties file in
- // #unwindValue(String)
- // case '!':
- // return "\\!";//$NON-NLS-1$
- // case '#':
- // return "\\#";//$NON-NLS-1$
-
- default:
- if (((c < 0x0020) || (c > 0x007e))) {
- return new StringBuffer().append('\\').append('u').append(
- toHex((c >> 12) & 0xF)).append(toHex((c >> 8) & 0xF))
- .append(toHex((c >> 4) & 0xF)).append(toHex(c & 0xF))
- .toString();
-
- }
- return String.valueOf(c);
- }
- }
-
- private static char toHex(int halfByte) {
- return HEX_DIGITS[(halfByte & 0xF)];
- }
-
- private UTF8Util()
- {
- // no instantiation
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/WebrootUtil.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/WebrootUtil.java
deleted file mode 100644
index 3a99bf308..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/WebrootUtil.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.utils;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeManager;
-import org.eclipse.jst.jsf.common.ui.IFileFolderConstants;
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.wst.common.componentcore.ComponentCore;
-import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
-import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * Web app utility methods
- */
-public class WebrootUtil {
-
- /**
- * get the webpath for the project path. The project path is something like
- * "/projectname/webroot/filename.jsp", or "/projectname/webroot/folder".
- * The project information should be removed from project path, e.g,
- * "/filename.jsp" or "/folder/*";
- *
- * @param path
- * @return the web path
- */
- public static String getWebPath(IPath path) {
- String strWebrootPath = ""; //$NON-NLS-1$
- IProject project = WorkspaceUtil.getProjectFor(path);
- IPath webContentPath = getWebContentPath(project);
- if (webContentPath != null && webContentPath.isPrefixOf(path)) {
- int start = path.matchingFirstSegments(webContentPath);
- String[] segments = path.segments();
- for (int i = start, n = path.segmentCount(); i < n; i++) {
- strWebrootPath = strWebrootPath
- + IFileFolderConstants.PATH_SEPARATOR + segments[i];
- }
- }
- return strWebrootPath;
- }
-
- /**
- * To see if a resource is under the webcontent folder.
- *
- * @param resource
- * @return true if resource is within the web content folder hierarchy
- */
- public static boolean isUnderWebContentFolder(IResource resource) {
- IPath webContentPath = getWebContentPath(resource.getProject());
- if (webContentPath != null) {
- return webContentPath.isPrefixOf(resource.getFullPath());
- }
- return true;
- }
-
- /**
- * @param project
- * @return full path to web content folder
- */
- public static IPath getWebContentPath(IProject project) {
- if (project != null) {
- IVirtualComponent component = ComponentCore.createComponent(project);
- if (component != null) {
- IVirtualFolder rootFolder = component.getRootFolder();
- if (rootFolder != null) {
- IContainer underlyingFolder = rootFolder.getUnderlyingFolder();
- if (underlyingFolder != null) {
- return underlyingFolder.getFullPath();
- }
- }
- }
- }
- return null;
- }
-
- /**
- * Return the name of the web content folder. i.e, "WebContent"
- *
- * @param project
- * @return the web content folder name
- */
- public static String getWebContentFolderName(IProject project) {
- IPath webContentPath = getWebContentPath(project);
- if (webContentPath != null)
- return webContentPath.lastSegment();
- return null;
- }
-
- /**
- * @param project
- * @return folder where for web content
- */
- public static IFolder getWebContentFolder(IProject project) {
- IPath webContentPath = getWebContentPath(project);
- IFolder folder = null;
- if (webContentPath != null) {
- folder = project.getFolder(webContentPath.removeFirstSegments(1));
- }
- return folder;
- }
-
- /**
- * return the depth of webcontent folder. For example, if the webcontent
- * folder path is /projectname/webContent, then return 2, if it's
- * /projectname/a/webContent, then return 3.
- *
- * @param project
- * @return the depth of webcontent folder
- */
- public static int getWebContentFolderDepth(IProject project) {
- if (project != null) {
- IPath webContentPath = getWebContentPath(project);
- if (webContentPath != null) {
- return webContentPath.segmentCount();
- }
- }
- // default to 2
- return 2;
- }
-
- /**
- * determine the path of web file is valid or not
- *
- * @param path -
- * the path of web file
- * @return - true - valid web file
- */
- public static boolean isValidWebFile(IPath path) {
- String[] jspExtensions = getJSPFileExtensions();
-
- String extension = path.getFileExtension();
- if (extension != null
- && Arrays.asList(jspExtensions).contains(extension))
- {
- return true;
- }
-
- return false;
- }
-
- /**
- * get the webpath for the project path. The project path is something like
- * "/projectname/webroot/filename.jsp", or "/projectname/webroot/folder".
- * The project information should be removed from project path, e.g,
- * "/filename.jsp" or "/folder/*";
- *
- * @param strPath -
- * the project path
- * @return - web path remove from "/projectname/webroot"
- * @deprecated use getWebPath(IPath path) instead.
- */
- public static String getWebPath(String strPath) {
- String strWebrootPath = ""; //$NON-NLS-1$
- if (strPath != null) {
- IPath path = new Path(strPath);
- return getWebPath(path);
- }
- return strWebrootPath;
- }
-
- /**
- * @param strWebPath
- * @return the page name
- */
- public static String getPageNameFromWebPath(String strWebPath) {
- String pageName = strWebPath;
-
- if (pageName.startsWith(IFileFolderConstants.PATH_SEPARATOR)) {
- pageName = pageName.substring(1);
- }
-
- String[] jspExtensions = getJSPFileExtensions();
- for (int i = 0, n = jspExtensions.length; i < n; i++) {
- String extension = IFileFolderConstants.DOT + jspExtensions[i];
- if (pageName.endsWith(extension)) {
- pageName = pageName.substring(0, pageName.length()
- - extension.length());
- break;
- }
- }
-
- return pageName;
- }
- /**
- * Get the JSP file extension from Eclipse preference
- * Windows->Preferences->General->Content Types
- *
- * @return String Array for JSP file extensions
- */
- public static String[] getJSPFileExtensions() {
- IContentTypeManager typeManager = Platform.getContentTypeManager();
- IContentType jspContentType = typeManager
- .getContentType("org.eclipse.jst.jsp.core.jspsource"); //$NON-NLS-1$
- if (jspContentType != null) {
- return jspContentType
- .getFileSpecs(IContentType.FILE_EXTENSION_SPEC);
- }
- return null;
- }
-
- /**
- * Tests if the passed IProject instance is a valid JSF project in the
- * following ways:
- * <ul>
- * <li>project is not null and is accessible, </li>
- * <li>project has the "jst.web" facet set on it.</li>
- * </ul>
- *
- * @param project
- * IProject instance to be tested.
- * @return true if the IProject instance is a valid JSF project, else false.
- */
- public static boolean isValidWebProject(IProject project) {
- boolean isValid = false;
- // check for null or inaccessible project
- if (project != null && project.isAccessible()) {
- // TODO: this was jst.jsf before, but we are checking for jst.web
- // the javadoc seems out of sync with the method name
- // check for "jst.web" facet on project
- try {
- IFacetedProject facetedProject = ProjectFacetsManager
- .create(project);
- if (facetedProject != null) {
- Set projectFacets = facetedProject.getProjectFacets();
- Iterator itProjectFacets = projectFacets.iterator();
- while (itProjectFacets.hasNext()) {
- IProjectFacetVersion projectFacetVersion = (IProjectFacetVersion) itProjectFacets
- .next();
- IProjectFacet projectFacet = projectFacetVersion
- .getProjectFacet();
- if ("jst.web".equals(projectFacet.getId())) { //$NON-NLS-1$
- isValid = true;
- break;
- }
- }
- }
- } catch (CoreException ce) {
- JSFUICommonPlugin.getLogger(WebrootUtil.class).error("checking web project", ce); //$NON-NLS-1$
- }
- }
- return isValid;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/WorkspaceUtil.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/WorkspaceUtil.java
deleted file mode 100644
index 6c5dcba5d..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/utils/WorkspaceUtil.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. 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:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.common.ui.internal.utils;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jst.jsf.common.ui.IFileFolderConstants;
-import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
-import org.eclipse.jst.jsf.common.ui.internal.logging.Logger;
-
-/**
- * TODO: This class should be abstract to common utility.
- *
- * This class implements management of resource in a workspace.
- */
-public final class WorkspaceUtil {
- /** log instance */
- private static final Logger log = JSFUICommonPlugin
- .getLogger(WorkspaceUtil.class);
-
- private WorkspaceUtil() {
- // no external instantiation
- }
-
- /**
- * Create the given file in the workspace resource info tree.
- * @param resource
- * @param contents
- */
- public static void ensureExistsInWorkspace(final IFile resource,
- final InputStream contents) {
- if (resource == null) {
- return;
- }
- IWorkspaceRunnable body = new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- if (resource.exists()) {
- resource.setContents(contents, true, false, null);
- } else {
- ensureExistsInWorkspace(resource.getParent(), true);
- resource.create(contents, true, null);
- }
- }
- };
- try {
- ResourcesPlugin.getWorkspace().run(body, null);
- } catch (CoreException e) {
- // Test.EclipseWorkspaceTest.Error.FileCreationInWorkspace = Fail in
- // creating file:{0} in the workspace resource info tree.
- log
- .error(
- "Test.EclipseWorkspaceTest.Error.FileCreationInWorkspace", resource.getName(), e);//$NON-NLS-1$
- }
- }
-
- /**
- * Create the given file in the workspace resource info tree.
- * @param resource
- * @param contents
- */
- public static void ensureExistsInWorkspace(IFile resource, String contents) {
- // FIXME: We'll need some way for handing file encoding.
- ensureExistsInWorkspace(resource, new ByteArrayInputStream(contents
- .getBytes()));
- }
-
- /**
- * Create the given resource in the workspace resource info tree.
- * @param resource
- * @param local
- */
- public static void ensureExistsInWorkspace(final IResource resource,
- final boolean local) {
- IWorkspaceRunnable body = new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- create(resource, local);
- }
- };
- try {
- ResourcesPlugin.getWorkspace().run(body, null);
- } catch (CoreException e) {
- // Test.EclipseWorkspaceTest.Error.ResourceCreationInWorkspace =
- // Fail in creating resource:{0} in the workspace resource info
- // tree.
- log
- .error(
- "Test.EclipseWorkspaceTest.Error.ResourceCreationInWorkspace", resource.getName(), e);//$NON-NLS-1$
- }
- }
-
- /**
- * crate the resource if the resource is not existed, create a new one.
- *
- * @param resource -
- * resource instance
- * @param local -
- * a flag controlling whether or not the folder will be local
- * after the creation
- * @throws CoreException
- */
- protected static void create(final IResource resource, boolean local)
- throws CoreException {
- if (resource == null || resource.exists()) {
- return;
- }
- if (!resource.getParent().exists()) {
- create(resource.getParent(), local);
- }
- switch (resource.getType()) {
- case IResource.FILE:
- ((IFile) resource).create(local ? new ByteArrayInputStream(
- new byte[0]) : null, true, getMonitor());
- break;
- case IResource.FOLDER:
- ((IFolder) resource).create(true, local, getMonitor());
- break;
- case IResource.PROJECT:
- ((IProject) resource).create(getMonitor());
- ((IProject) resource).open(getMonitor());
- break;
- }
- }
-
- /**
- * create and return a NullProgressMonitor
- *
- * @return - NullProgressMonitor
- */
- public static IProgressMonitor getMonitor() {
- return new NullProgressMonitor();
- }
-
- /**
- * Get the project reference for a given path
- *
- * @param path -
- * the path
- * @return IProject - the project reference
- */
- public static IProject getProjectFor(IPath path) {
- String[] segs = path.segments();
- String projectPath = new String();
- IProject[] projects = ResourcesPlugin.getWorkspace().getRoot()
- .getProjects();
- IProject project = null;
- for (int p = 0; p < projects.length; p++) {
- if (projects[p].isOpen()) {
- for (int s = 0; s < segs.length; s++) {
- if (segs[s].equalsIgnoreCase(projects[p].getName())) {
- // Once we have a match on the project name, then
- // the remainder of the segments equals the project path
- for (int s2 = s + 1; s2 < segs.length; s2++) {
- projectPath = projectPath
- + IFileFolderConstants.PATH_SEPARATOR
- + segs[s2];
- }
- project = projects[p];
- break;
- }
- }
- }
- }
- if (project == null) {
- return null;
- }
-
- // TODO: still don't understand why this refreshLocal is necessary
- // for now, going to only allow it if this method is called
- // when the tree isn't locked. This shouldn't cause a regression, since
- // when the call fails currently things keep on going due to the catch
- if (!project.getWorkspace().isTreeLocked())
- {
- try {
- project.refreshLocal(IResource.DEPTH_INFINITE, null);
- } catch (CoreException e) {
- // TODO C.B.:pushing this down to a warning because it creates really
- // spurious output. Don't know why we are calling refreshLocal at all.
- JSFUICommonPlugin.getLogger(WorkspaceUtil.class).info("Error.RefreshingLocal", e); //$NON-NLS-1$
- }
- }
-
- IResource res = project.findMember(new Path(projectPath));
- if ((res != null) && (res.exists())) {
- return project;
- }
- return null;
- }
-
- /**
- * Get the project reference for a given file
- *
- * @param file -
- * the IFile file reference
- * @return IProject - the project reference
- */
- public static IProject getProjectFor(IFile file) {
- IPath testPath = new Path(file.getFullPath().toOSString());
- return getProjectFor(testPath);
- }
-
- /**
- * Get the project reference for a given file
- *
- * @param file -
- * the File file reference
- * @return IProject - the project reference
- */
- public static IProject getProjectFor(File file) {
- IPath testPath = new Path(file.getAbsolutePath());
- return getProjectFor(testPath);
- }
-
- /**
- * Get the project-relative resource reference for a given path
- *
- * @param path -
- * the path
- * @return IResource - the project-relative resource
- */
- public static IResource getProjectRelativeResource(IPath path) {
- String[] segs = path.segments();
- String projectPath = new String();
- IProject[] projects = ResourcesPlugin.getWorkspace().getRoot()
- .getProjects();
- IProject project = null;
- for (int p = 0; p < projects.length; p++) {
- if (projects[p].isOpen()) {
- for (int s = 0; s < segs.length; s++) {
- if (segs[s].equalsIgnoreCase(projects[p].getName())) {
- // Once we have a match on the project name, then
- // the remainder of the segments equals the project path
- for (int s2 = s + 1; s2 < segs.length; s2++) {
- projectPath = projectPath
- + IFileFolderConstants.PATH_SEPARATOR
- + segs[s2];
- }
- project = projects[p];
- break;
- }
- }
- }
- }
- if (project == null) {
- return null;
- }
-
- return project.getFile(projectPath);
- }
-
- /**
- * Get the project-relative resource reference for a given file
- *
- * @param file -
- * the File file reference
- * @return IResource - the project-relative resource
- */
- public static IResource getProjectRelativeResource(File file) {
- IPath testPath = new Path(file.getAbsolutePath());
- return getProjectRelativeResource(testPath);
- }
-}

Back to the top