Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.m2e.core/src/org/eclipse/m2e/core/ui/dialogs/MavenPropertyDialog.java')
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/ui/dialogs/MavenPropertyDialog.java192
1 files changed, 192 insertions, 0 deletions
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/ui/dialogs/MavenPropertyDialog.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/ui/dialogs/MavenPropertyDialog.java
new file mode 100644
index 00000000..764714e6
--- /dev/null
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/ui/dialogs/MavenPropertyDialog.java
@@ -0,0 +1,192 @@
+/*******************************************************************************
+ * Copyright (c) 2008-2010 Sonatype, Inc.
+ * 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:
+ * Sonatype, Inc. - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.m2e.core.ui.dialogs;
+
+// import org.eclipse.debug.ui.StringVariableSelectionDialog;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.VerifyEvent;
+import org.eclipse.swt.events.VerifyListener;
+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.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+import org.eclipse.m2e.core.core.Messages;
+
+
+public class MavenPropertyDialog extends Dialog {
+
+ private final String title;
+
+ private final String initialName;
+
+ private final String initialValue;
+
+ private final VerifyListener verifyListener;
+
+ protected Text nameText;
+
+ protected Text valueText;
+
+ private String name;
+
+ private String value;
+
+ public MavenPropertyDialog(Shell shell, String title, String initialName, String initialValue, VerifyListener verifyListener) {
+ super(shell);
+ this.title = title;
+ this.initialName = initialName;
+ this.initialValue = initialValue;
+ this.verifyListener = verifyListener;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+ */
+ protected Control createDialogArea(Composite parent) {
+ Composite comp = new Composite(parent, SWT.NONE);
+ GridLayout gridLayout = new GridLayout(2, false);
+ gridLayout.marginTop = 7;
+ gridLayout.marginWidth = 12;
+ comp.setLayout(gridLayout);
+
+ Label nameLabel = new Label(comp, SWT.NONE);
+ nameLabel.setText(Messages.getString("launch.propertyDialog.name")); //$NON-NLS-1$;
+ nameLabel.setFont(comp.getFont());
+
+ nameText = new Text(comp, SWT.BORDER | SWT.SINGLE);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.widthHint = 300;
+ nameText.setLayoutData(gd);
+ nameText.setFont(comp.getFont());
+ nameText.setText(initialName==null ? "" : initialName); //$NON-NLS-1$
+ nameText.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ updateButtons();
+ }
+ });
+
+ Label valueLabel = new Label(comp, SWT.NONE);
+ valueLabel.setText(Messages.getString("launch.propertyDialog.value")); //$NON-NLS-1$;
+ valueLabel.setFont(comp.getFont());
+
+ valueText = new Text(comp, SWT.BORDER | SWT.SINGLE);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.widthHint = 300;
+ valueText.setLayoutData(gd);
+ valueText.setFont(comp.getFont());
+ valueText.setText(initialValue==null ? "" : initialValue); //$NON-NLS-1$
+ valueText.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ updateButtons();
+ }
+ });
+
+// if(variables) {
+// Button variablesButton = new Button(comp, SWT.PUSH);
+// variablesButton.setText(Messages.getString("launch.propertyDialog.browseVariables")); //$NON-NLS-1$;
+// gd = new GridData(GridData.HORIZONTAL_ALIGN_END);
+// gd.horizontalSpan = 2;
+// int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
+// gd.widthHint = Math.max(widthHint, variablesButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
+// variablesButton.setLayoutData(gd);
+// variablesButton.setFont(comp.getFont());
+//
+// variablesButton.addSelectionListener(new SelectionAdapter() {
+// public void widgetSelected(SelectionEvent se) {
+// StringVariableSelectionDialog variablesDialog = new StringVariableSelectionDialog(getShell());
+// if(variablesDialog.open() == IDialogConstants.OK_ID) {
+// String variable = variablesDialog.getVariableExpression();
+// if(variable != null) {
+// valueText.insert(variable.trim());
+// }
+// }
+// }
+// });
+// }
+
+ return comp;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public String getValue() {
+ return this.value;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
+ */
+ protected void buttonPressed(int buttonId) {
+ if(buttonId == IDialogConstants.OK_ID) {
+ name = nameText.getText();
+ value = valueText.getText();
+ } else {
+ name = null;
+ value = null;
+ }
+ super.buttonPressed(buttonId);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+ */
+ protected void configureShell(Shell shell) {
+ super.configureShell(shell);
+ if(title != null) {
+ shell.setText(title);
+ }
+// if (fInitialValues[0].length() == 0) {
+// PlatformUI.getWorkbench().getHelpSystem().setHelp(shell, IAntUIHelpContextIds.ADD_PROPERTY_DIALOG);
+// } else {
+// PlatformUI.getWorkbench().getHelpSystem().setHelp(shell, IAntUIHelpContextIds.EDIT_PROPERTY_DIALOG);
+// }
+ }
+
+ /**
+ * Enable the OK button if valid input
+ */
+ protected void updateButtons() {
+ String name = nameText.getText().trim();
+ String value = valueText.getText().trim();
+ // verify name
+ Event e = new Event();
+ e.widget = nameText;
+ VerifyEvent ev = new VerifyEvent(e);
+ ev.doit = true;
+ if (verifyListener != null) {
+ ev.text = name;
+ verifyListener.verifyText(ev);
+ }
+ getButton(IDialogConstants.OK_ID).setEnabled((name.length() > 0) && (value.length() > 0) && ev.doit);
+ }
+
+ /**
+ * Enable the buttons on creation.
+ *
+ * @see org.eclipse.jface.window.Window#create()
+ */
+ public void create() {
+ super.create();
+ updateButtons();
+ }
+}

Back to the top