summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/InitializeDiskTypeSelection.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/InitializeDiskTypeSelection.java')
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/InitializeDiskTypeSelection.java110
1 files changed, 95 insertions, 15 deletions
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/InitializeDiskTypeSelection.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/InitializeDiskTypeSelection.java
index 4b64ea96..b484d6d2 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/InitializeDiskTypeSelection.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/InitializeDiskTypeSelection.java
@@ -21,23 +21,30 @@
*******************************************************************************/
package com.gluster.storage.management.console.dialogs;
-import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.TraverseEvent;
import org.eclipse.swt.events.TraverseListener;
+import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Combo;
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.swt.widgets.Text;
+import org.eclipse.ui.forms.events.HyperlinkAdapter;
+import org.eclipse.ui.forms.events.HyperlinkEvent;
+import org.eclipse.ui.forms.widgets.Hyperlink;
import com.gluster.storage.management.console.utils.GUIHelper;
-import com.gluster.storage.management.core.constants.GlusterConstants;
public class InitializeDiskTypeSelection extends Dialog {
@@ -46,9 +53,16 @@ public class InitializeDiskTypeSelection extends Dialog {
private Composite initializeDiskTypeComposite;
private Composite composite;
private String fsType;
+ private String mountPointText;
+ private Text mountPoint;
+ private String deviceName;
+ private List<String> possibleFsType;
+ private String defaultMountPoint = "/export/";
- public InitializeDiskTypeSelection(Shell parentShell) {
+ public InitializeDiskTypeSelection(Shell parentShell, String formatingDeviceName, List<String> possibleFsType) {
super(parentShell);
+ this.possibleFsType = possibleFsType;
+ this.deviceName = formatingDeviceName;
// TODO Auto-generated constructor stub
}
@@ -98,32 +112,84 @@ public class InitializeDiskTypeSelection extends Dialog {
GridLayout layout = new GridLayout(3, false);
initializeDiskTypeComposite.setLayout(layout);
- createLabel(initializeDiskTypeComposite, "Format disk using ");
+ createLabel(initializeDiskTypeComposite, "File system ");
createFormatTypeCombo(initializeDiskTypeComposite);
- createLabel(initializeDiskTypeComposite, " file system");
+ createLabel(initializeDiskTypeComposite, "Mount point ");
+ createMountPointText(initializeDiskTypeComposite);
+ createChangeLink(initializeDiskTypeComposite);
}
private void createLabel(Composite composite, String labelText) {
Label formatTypeLabel = new Label(composite, SWT.NONE);
formatTypeLabel.setText(labelText);
- formatTypeLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER, false, false));
+ formatTypeLabel.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false));
}
private void createFormatTypeCombo(Composite composite) {
- List<String> fsType = new ArrayList<String>();
- fsType.add(GlusterConstants.FSTYPE_DEFAULT);
- fsType.add(GlusterConstants.FSTYPE_EXT_3);
- fsType.add(GlusterConstants.FSTYPE_EXT_4);
- fsType.add(GlusterConstants.FSTYPE_XFS);
formatTypeCombo = new Combo(composite, SWT.READ_ONLY);
- formatTypeCombo.setItems(fsType.toArray(new String[0]));
+ formatTypeCombo.setItems(possibleFsType.toArray(new String[0]));
formatTypeCombo.select(0);
+ new Label(composite, SWT.NONE);
}
+ private void createMountPointText(Composite container) {
+ mountPoint = new Text(container, SWT.BORDER);
+ GridData txtNameData = new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1);
+ txtNameData.horizontalSpan = 1;
+ txtNameData.widthHint = 400;
+ mountPoint.setTextLimit(100);
+ mountPoint.setLayoutData(txtNameData);
+ mountPoint.setText(defaultMountPoint + deviceName);
+ mountPoint.setEnabled(false);
+ mountPoint.addModifyListener(new ModifyListener() {
+ @Override
+ public void modifyText(ModifyEvent e) {
+ validateMountPoint(mountPoint.getText().trim());
+ }
+ });
+ }
+
+ private void createChangeLink(Composite container) {
+ final Hyperlink changeLink = new Hyperlink(container, SWT.UNDERLINE_SINGLE);
+ changeLink.setText("change");
+ changeLink.setUnderlined(true);
+ changeLink.setForeground(new Color(Display.getDefault(), 0, 0, 255));
+
+ changeLink.addHyperlinkListener(new HyperlinkAdapter() {
+
+ // private void finishEdit() {
+ // changeLink.setText("change");
+ // mountPoint.setEnabled(false);
+ // }
+
+ private void startEdit() {
+ // changeLink.setText("update");
+ changeLink.setVisible(false);
+ mountPoint.setEnabled(true);
+ }
+
+ @Override
+ public void linkActivated(HyperlinkEvent e) {
+ if (mountPoint.isEnabled()) {
+ // we were already in edit mode.
+ // finishEdit();
+ } else {
+ // Get in to edit mode
+ startEdit();
+ }
+ }
+ });
+ }
+
@Override
protected void okPressed() {
- fsType = formatTypeCombo.getText();
- super.okPressed();
+ fsType = formatTypeCombo.getText().trim();
+ mountPointText = mountPoint.getText().trim();
+ if (validateForm()) {
+ super.okPressed();
+ } else {
+ MessageDialog.openError(getShell(), "Error: Validation error!", "Empty or Invalid mountpoint.");
+ }
}
@Override
@@ -131,6 +197,17 @@ public class InitializeDiskTypeSelection extends Dialog {
super.cancelPressed();
}
+ private boolean validateMountPoint(String deviceMountPoint) {
+ if (deviceMountPoint.isEmpty()) {
+ return false;
+ }
+ return deviceMountPoint.matches("^/.+");
+ }
+
+ private boolean validateForm() {
+ return (!formatTypeCombo.getText().trim().isEmpty() && validateMountPoint( mountPoint.getText().trim()));
+ }
+
/**
* Overriding to make sure that the dialog is centered in screen
*/
@@ -142,7 +219,10 @@ public class InitializeDiskTypeSelection extends Dialog {
}
public String getFSType() {
- return fsType.trim();
+ return fsType;
}
+ public String getMountPoint() {
+ return mountPointText;
+ }
}