* 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
**********************************************************************/
package net.sourceforge.phpeclipse.wiki.internal;
import net.sourceforge.phpeclipse.wiki.editor.WikiEditorPlugin;
+import net.sourceforge.phpeclipse.wiki.preferences.UserValidationDialog;
+import net.sourceforge.phpeclipse.wiki.preferences.Util;
+
+import org.eclipse.swt.widgets.Shell;
/**
*
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
- };
+ 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
}
memento.putString(MEMENTO_TYPE_ID, fType);
memento.putString(MEMENTO_USER, fUser);
memento.putString(MEMENTO_URL, fUrl);
- String result = 'A'+scramblePassword(fPassword);
+ String result = 'A' + scramblePassword(fPassword);
memento.putString(MEMENTO_PASSWORD, result);
}
fUrl = "";
}
String result = memento.getString(MEMENTO_PASSWORD);
-
+
if (result == null) {
fPassword = "";
} else {
return 1;
}
- private static String scramblePassword(String password) {
+ private static String scramblePassword(String password) {
int length = password.length();
char[] out = new char[length];
for (int i = 0; i < length; i++) {
return new String(out);
}
+ public boolean isUserComplete() {
+ if (fUser == null || fUser.equals("")) {
+ return false;
+ }
+ if (fPassword == null || fPassword.equals("")) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Asks the user to enter a password. Places the results in the supplied string[]. result[0] must contain the username, result[1]
+ * must contain the fPassword. If the user canceled, both values must be zero.
+ *
+ * @param location
+ * the location to obtain the fPassword for
+ * @param username
+ * the username
+ * @param message
+ * a message to display to the fUser
+ * @param userMutable
+ * whether the fUser can be changed in the dialog
+ * @param result
+ * a String array of length two in which to put the result
+ */
+ public boolean promptForPassword(final String username, final String message, final boolean userMutable, final String[] result) {
+ if (isUserComplete()) {
+ result[0] = fUser;
+ result[1] = fPassword;
+ return true;
+ }
+ result[0] = null;
+ result[1] = null;
+ Shell shell = Util.findShell();
+ if (shell == null) {
+ return false;
+ }
+ UserValidationDialog dialog = new UserValidationDialog(shell, fUrl, (username == null) ? "" : username, message);//$NON-NLS-1$
+ dialog.setUsernameMutable(userMutable);
+ dialog.open();
+ result[0] = dialog.getUsername();
+ result[1] = dialog.getPassword();
+ if (dialog.getAllowCaching()) {
+ fUser = result[0];
+ fPassword = result[1];
+ }
+ return dialog.getAllowCaching();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ public boolean equals(Object obj) {
+ if (obj instanceof Configuration) {
+ if (fName == null || ((Configuration) obj).fName == null) {
+ return false;
+ }
+ return fName.equals(((Configuration) obj).fName);
+ }
+ return false;
+ }
}
\ No newline at end of file