| /******************************************************************************* |
| * Copyright (c) 2005, 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 |
| *******************************************************************************/ |
| /** |
| * |
| */ |
| package org.eclipse.jst.j2ee.internal.dialogs; |
| |
| import java.text.MessageFormat; |
| |
| import org.eclipse.core.resources.IProject; |
| import org.eclipse.core.runtime.CoreException; |
| import org.eclipse.jface.dialogs.MessageDialog; |
| import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages; |
| import org.eclipse.jst.j2ee.internal.plugin.J2EEUIPlugin; |
| import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities; |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.graphics.Color; |
| import org.eclipse.swt.graphics.Image; |
| import org.eclipse.swt.graphics.RGB; |
| import org.eclipse.swt.layout.GridData; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Control; |
| import org.eclipse.swt.widgets.Shell; |
| import org.eclipse.ui.dialogs.PreferencesUtil; |
| import org.eclipse.ui.forms.events.IHyperlinkListener; |
| import org.eclipse.ui.forms.widgets.Hyperlink; |
| import org.eclipse.wst.server.core.IRuntime; |
| import org.eclipse.jst.j2ee.internal.dialogs.Messages; |
| |
| |
| /** |
| * @author Administrator |
| * |
| */ |
| public class RuntimeSelectionDialog extends MessageDialog { |
| private IProject project = null; |
| private String configuredMessage; |
| |
| /** |
| * @param parentShell |
| * @param dialogTitle |
| * @param dialogTitleImage |
| * @param dialogMessage |
| * @param dialogImageType |
| * @param dialogButtonLabels |
| * @param defaultIndex |
| */ |
| public RuntimeSelectionDialog(Shell parentShell, String dialogTitle, |
| Image dialogTitleImage, String dialogMessage, int dialogImageType, |
| String[] dialogButtonLabels, int defaultIndex, IProject project) { |
| super(parentShell, dialogTitle, dialogTitleImage, dialogMessage, |
| dialogImageType, dialogButtonLabels, defaultIndex); |
| this.project = project; |
| this.configuredMessage = MessageFormat.format(J2EEUIMessages.getResourceString("DEPLOY_RUNTIME_CONFIGURED"), new Object []{project.getName()}); //$NON-NLS-1$ |
| } |
| |
| @Override |
| protected Control createCustomArea(Composite parent) { |
| |
| //Composite composite = new Composite(parent, 0); |
| createHyperLink(parent); |
| return parent; |
| |
| } |
| |
| private void createHyperLink(Composite parent) { |
| Hyperlink link = new Hyperlink(parent,SWT.None); |
| GridData layout = new GridData(GridData.HORIZONTAL_ALIGN_END); |
| layout.horizontalSpan = 2; |
| link.setLayoutData(layout); |
| link.setUnderlined(true); |
| Color color = new Color(parent.getDisplay(),new RGB(0,0,255) ); |
| link.setForeground(color); |
| link.setText(Messages.RuntimeSelectionDialog_Configure_Target_Runtime_); |
| link.addHyperlinkListener(new IHyperlinkListener() { |
| public static final String DATA_NO_LINK = "PropertyAndPreferencePage.nolink"; //$NON-NLS-1$ |
| |
| public void linkEntered(org.eclipse.ui.forms.events.HyperlinkEvent e) { |
| } |
| |
| public void linkExited(org.eclipse.ui.forms.events.HyperlinkEvent e) { |
| } |
| |
| public void linkActivated(org.eclipse.ui.forms.events.HyperlinkEvent e) { |
| String id = getPreferencePageID(); |
| PreferencesUtil.createPropertyDialogOn(getShell(), project, id, new String[]{id}, DATA_NO_LINK).open(); // |
| //(getShell(), id, new String[]{id}, DATA_NO_LINK).open(); |
| try { |
| updateWidgets(); |
| } catch (Exception ie) { |
| |
| } |
| } |
| |
| private String getPreferencePageID() { |
| return "org.eclipse.wst.common.project.facet.ui.internal.RuntimesPropertyPage"; //$NON-NLS-1$ |
| } |
| }); |
| |
| } |
| |
| private void updateWidgets() { |
| if (getTargetRuntime() != null) { |
| messageLabel.setText(configuredMessage); |
| imageLabel.setImage(this.getInfoImage()); |
| } else { |
| messageLabel.setText(message); |
| imageLabel.setImage(getErrorImage()); |
| } |
| |
| } |
| |
| private IRuntime getTargetRuntime() { |
| try { |
| IRuntime runtime = J2EEProjectUtilities.getServerRuntime(project); |
| return runtime; |
| } catch (CoreException e) { |
| J2EEUIPlugin.logError(e); |
| } |
| return null; |
| } |
| |
| } |