private static final String MEMENTO_ID = "id";
private static final String MEMENTO_NAME = "name";
-
+
private static final String MEMENTO_USER = "user";
private static final String MEMENTO_URL = "url";
protected String fType = "";
+ private static final char[] SCRAMBLING_TABLE=new char[] {
+ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
+ 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
+ 114,120,53,79,96,109,72,108,70,64,76,67,116,74,68,87,
+ 111,52,75,119,49,34,82,81,95,65,112,86,118,110,122,105,
+ 41,57,83,43,46,102,40,89,38,103,45,50,42,123,91,35,
+ 125,55,54,66,124,126,59,47,92,71,115,78,88,107,106,56,
+ 36,121,117,104,101,100,69,73,99,63,94,93,39,37,61,48,
+ 58,113,32,90,44,98,60,51,33,97,62,77,84,80,85,223,
+ 225,216,187,166,229,189,222,188,141,249,148,200,184,136,248,190,
+ 199,170,181,204,138,232,218,183,255,234,220,247,213,203,226,193,
+ 174,172,228,252,217,201,131,230,197,211,145,238,161,179,160,212,
+ 207,221,254,173,202,146,224,151,140,196,205,130,135,133,143,246,
+ 192,159,244,239,185,168,215,144,139,165,180,157,147,186,214,176,
+ 227,231,219,169,175,156,206,198,129,164,150,210,154,177,134,127,
+ 182,128,158,208,162,132,167,209,149,241,153,251,237,236,171,195,
+ 243,233,253,240,194,250,191,155,142,137,245,235,163,242,178,152
+ };
public Configuration() {
this(WikiEditorPlugin.HTTP_QUERY); // default type
}
public String getId() {
return fId;
}
-
+
public String getName() {
return fName;
}
memento.putString(MEMENTO_TYPE_ID, fType);
memento.putString(MEMENTO_USER, fUser);
memento.putString(MEMENTO_URL, fUrl);
- memento.putString(MEMENTO_PASSWORD, fPassword);
+ String result = 'A'+scramblePassword(fPassword);
+ memento.putString(MEMENTO_PASSWORD, result);
}
protected void load(IMemento memento) {
if (fUrl == null) {
fUrl = "";
}
- fPassword = memento.getString(MEMENTO_PASSWORD);
- if (fPassword == null) {
+ String result = memento.getString(MEMENTO_PASSWORD);
+
+ if (result == null) {
fPassword = "";
+ } else {
+ fPassword = scramblePassword(result.substring(1));
}
}
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see java.lang.Object#toString()
*/
public String toString() {
buffer.append(fType);
return buffer.toString();
}
-
- /* (non-Javadoc)
+
+ /*
+ * (non-Javadoc)
+ *
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
public int compareTo(Object o) {
if (o instanceof IConfiguration) {
- return fName.compareTo(((IConfiguration)o).getName());
+ return fName.compareTo(((IConfiguration) o).getName());
}
return 1;
}
+
+ private static String scramblePassword(String password) {
+ int length = password.length();
+ char[] out = new char[length];
+ for (int i = 0; i < length; i++) {
+ char value = password.charAt(i);
+ out[i] = SCRAMBLING_TABLE[value];
+ }
+ return new String(out);
+ }
+
}
\ No newline at end of file
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
- *
+ *
* Contributors:
* IBM - Initial API and implementation
**********************************************************************/
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
+
/**
- *
+ *
*/
public class ConfigurationDialog extends Dialog {
- protected IConfigurationWorkingCopy fConfiguration;
- protected boolean isEdit;
-
- private Button okButton;
- private Text fUserName;
- private Text fUrl;
- private Text fPassword;
-
- interface StringModifyListener {
- public void valueChanged(String s);
- }
-
- interface BooleanModifyListener {
- public void valueChanged(boolean b);
- }
-
- interface TypeModifyListener {
- public void valueChanged(String fType);
- }
-
- /**
- * @param parentShell
- */
- public ConfigurationDialog(Shell parentShell, IConfigurationWorkingCopy configuration) {
- super(parentShell);
- this.fConfiguration = configuration;
- isEdit = true;
- }
-
- public ConfigurationDialog(Shell parentShell) {
- super(parentShell);
- fConfiguration = WikiEditorPlugin.createConfiguration();
- isEdit = false;
- }
-
- protected void configureShell(Shell shell) {
- super.configureShell(shell);
- if (isEdit)
- shell.setText(WikiEditorPlugin.getResource("%editConfig"));
- else
- shell.setText(WikiEditorPlugin.getResource("%newConfig"));
- }
-
- protected Label createLabel(Composite comp, String txt) {
- Label label = new Label(comp, SWT.NONE);
- label.setText(txt);
- label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING));
- return label;
- }
-
- protected Text createPassword(Composite comp, String txt, final StringModifyListener listener) {
- final Text text = new Text(comp, SWT.BORDER | SWT.PASSWORD);
- if (txt != null)
- text.setText(txt);
- GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
- data.widthHint = 150;
- text.setLayoutData(data);
- if (listener != null)
- text.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- listener.valueChanged(text.getText());
- }
- });
- return text;
- }
-
- protected Text createText(Composite comp, String txt, final StringModifyListener listener) {
- final Text text = new Text(comp, SWT.BORDER);
- if (txt != null)
- text.setText(txt);
- GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
- data.widthHint = 150;
- text.setLayoutData(data);
- if (listener != null)
- text.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- listener.valueChanged(text.getText());
- }
- });
- return text;
- }
-
- protected Combo createTypeCombo(Composite comp, final String[] types, String sel, final TypeModifyListener listener) {
- final Combo combo = new Combo(comp, SWT.DROP_DOWN | SWT.READ_ONLY);
- int size = types.length;
- String[] items = new String[size];
- int index = -1;
- for (int i = 0; i < size; i++) {
- items[i] = types[i];
- if (types[i].equals(sel))
- index = i;
- }
- combo.setItems(items);
- if (index >= 0)
- combo.select(index);
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
- data.widthHint = 150;
- combo.setLayoutData(data);
- if (listener != null)
- combo.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- listener.valueChanged(types[combo.getSelectionIndex()]);
- }
- public void widgetDefaultSelected(SelectionEvent e) {
- widgetSelected(e);
- }
- });
- return combo;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
- */
- protected Control createDialogArea(Composite parent) {
- Composite composite = (Composite) super.createDialogArea(parent);
- ((GridLayout)composite.getLayout()).numColumns = 2;
-
-// WorkbenchHelp.setHelp(composite, ContextIds.PREF_DIALOG);
-
- createLabel(composite, WikiEditorPlugin.getResource("%name"));
- fUserName = createText(composite, fConfiguration.getName() + "", new StringModifyListener() {
- public void valueChanged(String name) {
- fConfiguration.setName(name);
- validateFields();
- }
- });
-
- Group group = new Group(composite, SWT.NONE);
- GridLayout layout = new GridLayout(2, false);
- group.setLayout(layout);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
-
- group.setLayoutData(data);
- group.setText(WikiEditorPlugin.getResource("%configGroup"));
-
-
- createLabel(group, WikiEditorPlugin.getResource("%user"));
- fUserName = createText(group, fConfiguration.getUser() + "", new StringModifyListener() {
- public void valueChanged(String s) {
- fConfiguration.setUser(s);
- validateFields();
- }
- });
-
- createLabel(group, WikiEditorPlugin.getResource("%password"));
- fPassword = createPassword(group, fConfiguration.getPassword() + "", new StringModifyListener() {
- public void valueChanged(String s) {
- fConfiguration.setPassword(s);
- validateFields();
- }
- });
-
- createLabel(group, WikiEditorPlugin.getResource("%url"));
- fUrl = createText(group, fConfiguration.getURL(), new StringModifyListener() {
- public void valueChanged(String s) {
- fConfiguration.setURL(s);
- validateFields();
- }
- });
-
-
- createLabel(group, WikiEditorPlugin.getResource("%parseType"));
- createTypeCombo(group, WikiEditorPlugin.getTypes(), fConfiguration.getType(), new TypeModifyListener() {
- public void valueChanged(String fType) {
- fConfiguration.setType(fType);
- }
- });
-
- return composite;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.Dialog#okPressed()
- */
- protected void okPressed() {
- fConfiguration.save();
- super.okPressed();
- }
-
- protected Control createButtonBar(Composite parent) {
- Control buttonControl = super.createButtonBar(parent);
- validateFields();
- return buttonControl;
- }
-
- private void setOKButtonEnabled(boolean curIsEnabled) {
- if (okButton == null)
- okButton = getButton(IDialogConstants.OK_ID);
-
- if (okButton != null)
- okButton.setEnabled(curIsEnabled);
- }
-
- protected void validateFields() {
- boolean result = true;
-
- String currHostname = fUrl.getText();
-// if (!isValidHostname(currHostname))
-// result = false;
-
- String currHostnamePort = fPassword.getText();
-// try {
-// Integer.parseInt(currHostnamePort);
-// } catch (Exception any) {
-// result = false;
-// }
-
- String currMonitorPort = fUserName.getText();
-// try {
-// Integer.parseInt(currMonitorPort);
-// } catch (Exception any) {
-// result = false;
-// }
-
-// if (result && isLocalhost(currHostname)) {
-// if (currHostnamePort.equals(currMonitorPort))
-// result = false;
-// }
- setOKButtonEnabled(result);
- }
-
-// protected static boolean isValidHostname(String host) {
-// if (host == null || host.trim().length() < 1)
-// return false;
-// if (host.indexOf("/") >= 0)
-// return false;
-// if (host.indexOf("\\") >= 0)
-// return false;
-// if (host.indexOf(" ") >= 0)
-// return false;
-// return true;
-// }
-
-// protected static boolean isLocalhost(String host) {
-// if (host == null)
-// return false;
-// try {
-// if ("localhost".equals(host) || "127.0.0.1".equals(host))
-// return true;
-// InetAddress localHostaddr = InetAddress.getLocalHost();
-// if (localHostaddr.getHostName().equals(host))
-// return true;
-// } catch (Exception e) {
-// Trace.trace(Trace.WARNING, "Error checking for localhost", e);
-// }
-// return false;
-// }
+ protected IConfigurationWorkingCopy fConfiguration;
+
+ protected boolean isEdit;
+
+ private Button okButton;
+
+ private Text fUserName;
+
+ private Text fUrl;
+
+ private Text fPassword;
+
+ interface StringModifyListener {
+ public void valueChanged(String s);
+ }
+
+ interface BooleanModifyListener {
+ public void valueChanged(boolean b);
+ }
+
+ interface TypeModifyListener {
+ public void valueChanged(String fType);
+ }
+
+ /**
+ * @param parentShell
+ */
+ public ConfigurationDialog(Shell parentShell, IConfigurationWorkingCopy configuration) {
+ super(parentShell);
+ this.fConfiguration = configuration;
+ isEdit = true;
+ }
+
+ public ConfigurationDialog(Shell parentShell) {
+ super(parentShell);
+ fConfiguration = WikiEditorPlugin.createConfiguration();
+ isEdit = false;
+ }
+
+ protected void configureShell(Shell shell) {
+ super.configureShell(shell);
+ if (isEdit)
+ shell.setText(WikiEditorPlugin.getResource("%editConfig"));
+ else
+ shell.setText(WikiEditorPlugin.getResource("%newConfig"));
+ }
+
+ protected Label createLabel(Composite comp, String txt) {
+ Label label = new Label(comp, SWT.NONE);
+ label.setText(txt);
+ label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING));
+ return label;
+ }
+
+ protected Text createPassword(Composite comp, String txt, final StringModifyListener listener) {
+ final Text text = new Text(comp, SWT.BORDER | SWT.PASSWORD);
+ if (txt != null)
+ text.setText(txt);
+ GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
+ data.widthHint = 150;
+ text.setLayoutData(data);
+ if (listener != null)
+ text.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ listener.valueChanged(text.getText());
+ }
+ });
+ return text;
+ }
+
+ protected Text createText(Composite comp, String txt, final StringModifyListener listener) {
+ final Text text = new Text(comp, SWT.BORDER);
+ if (txt != null)
+ text.setText(txt);
+ GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
+ data.widthHint = 150;
+ text.setLayoutData(data);
+ if (listener != null)
+ text.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ listener.valueChanged(text.getText());
+ }
+ });
+ return text;
+ }
+
+ protected Combo createTypeCombo(Composite comp, final String[] types, String sel, final TypeModifyListener listener) {
+ final Combo combo = new Combo(comp, SWT.DROP_DOWN | SWT.READ_ONLY);
+ int size = types.length;
+ String[] items = new String[size];
+ int index = -1;
+ for (int i = 0; i < size; i++) {
+ items[i] = types[i];
+ if (types[i].equals(sel))
+ index = i;
+ }
+ combo.setItems(items);
+ if (index >= 0)
+ combo.select(index);
+ GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
+ data.widthHint = 150;
+ combo.setLayoutData(data);
+ if (listener != null)
+ combo.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ listener.valueChanged(types[combo.getSelectionIndex()]);
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ widgetSelected(e);
+ }
+ });
+ return combo;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+ */
+ protected Control createDialogArea(Composite parent) {
+ Composite composite = (Composite) super.createDialogArea(parent);
+ ((GridLayout) composite.getLayout()).numColumns = 2;
+
+ // WorkbenchHelp.setHelp(composite, ContextIds.PREF_DIALOG);
+
+ createLabel(composite, WikiEditorPlugin.getResource("%name"));
+ fUserName = createText(composite, fConfiguration.getName() + "", new StringModifyListener() {
+ public void valueChanged(String name) {
+ fConfiguration.setName(name);
+ validateFields();
+ }
+ });
+
+ Group group = new Group(composite, SWT.NONE);
+ GridLayout layout = new GridLayout(2, false);
+ group.setLayout(layout);
+ GridData data = new GridData(GridData.FILL_HORIZONTAL);
+ data.horizontalSpan = 2;
+
+ group.setLayoutData(data);
+ group.setText(WikiEditorPlugin.getResource("%configGroup"));
+
+ createLabel(group, WikiEditorPlugin.getResource("%user"));
+ fUserName = createText(group, fConfiguration.getUser() + "", new StringModifyListener() {
+ public void valueChanged(String s) {
+ fConfiguration.setUser(s);
+ validateFields();
+ }
+ });
+
+ Composite warningComposite = new Composite(group, SWT.NONE);
+ layout = new GridLayout();
+ layout.numColumns = 2;
+ layout.marginHeight = 0;
+ layout.marginHeight = 0;
+ warningComposite.setLayout(layout);
+ data = new GridData(GridData.FILL_HORIZONTAL);
+ data.horizontalSpan = 3;
+ warningComposite.setLayoutData(data);
+ Label warningLabel = new Label(warningComposite, SWT.NONE);
+ warningLabel.setImage(getImage(DLG_IMG_MESSAGE_WARNING));
+ warningLabel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_BEGINNING));
+ Label warningText = new Label(warningComposite, SWT.WRAP);
+ warningText.setText(WikiEditorPlugin.getResource("%scrambledPassword")); //$NON-NLS-1$
+ data = new GridData(GridData.FILL_HORIZONTAL);
+ data.widthHint = 300;
+ warningText.setLayoutData(data);
+
+ createLabel(group, WikiEditorPlugin.getResource("%password"));
+ fPassword = createPassword(group, fConfiguration.getPassword() + "", new StringModifyListener() {
+ public void valueChanged(String s) {
+ fConfiguration.setPassword(s);
+ validateFields();
+ }
+ });
+
+ createLabel(group, WikiEditorPlugin.getResource("%url"));
+ fUrl = createText(group, fConfiguration.getURL(), new StringModifyListener() {
+ public void valueChanged(String s) {
+ fConfiguration.setURL(s);
+ validateFields();
+ }
+ });
+
+ createLabel(group, WikiEditorPlugin.getResource("%parseType"));
+ createTypeCombo(group, WikiEditorPlugin.getTypes(), fConfiguration.getType(), new TypeModifyListener() {
+ public void valueChanged(String fType) {
+ fConfiguration.setType(fType);
+ }
+ });
+
+ return composite;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+ */
+ protected void okPressed() {
+ fConfiguration.save();
+ super.okPressed();
+ }
+
+ protected Control createButtonBar(Composite parent) {
+ Control buttonControl = super.createButtonBar(parent);
+ validateFields();
+ return buttonControl;
+ }
+
+ private void setOKButtonEnabled(boolean curIsEnabled) {
+ if (okButton == null)
+ okButton = getButton(IDialogConstants.OK_ID);
+
+ if (okButton != null)
+ okButton.setEnabled(curIsEnabled);
+ }
+
+ protected void validateFields() {
+ boolean result = true;
+
+ String currHostname = fUrl.getText();
+ // if (!isValidHostname(currHostname))
+ // result = false;
+
+ String currHostnamePort = fPassword.getText();
+ // try {
+ // Integer.parseInt(currHostnamePort);
+ // } catch (Exception any) {
+ // result = false;
+ // }
+
+ String currMonitorPort = fUserName.getText();
+ // try {
+ // Integer.parseInt(currMonitorPort);
+ // } catch (Exception any) {
+ // result = false;
+ // }
+
+ // if (result && isLocalhost(currHostname)) {
+ // if (currHostnamePort.equals(currMonitorPort))
+ // result = false;
+ // }
+ setOKButtonEnabled(result);
+ }
+
+ // protected static boolean isValidHostname(String host) {
+ // if (host == null || host.trim().length() < 1)
+ // return false;
+ // if (host.indexOf("/") >= 0)
+ // return false;
+ // if (host.indexOf("\\") >= 0)
+ // return false;
+ // if (host.indexOf(" ") >= 0)
+ // return false;
+ // return true;
+ // }
+
+ // protected static boolean isLocalhost(String host) {
+ // if (host == null)
+ // return false;
+ // try {
+ // if ("localhost".equals(host) || "127.0.0.1".equals(host))
+ // return true;
+ // InetAddress localHostaddr = InetAddress.getLocalHost();
+ // if (localHostaddr.getHostName().equals(host))
+ // return true;
+ // } catch (Exception e) {
+ // Trace.trace(Trace.WARNING, "Error checking for localhost", e);
+ // }
+ // return false;
+ // }
}
\ No newline at end of file