X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/internal/Configuration.java b/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/internal/Configuration.java index a8cf2e2..d3b5875 100644 --- a/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/internal/Configuration.java +++ b/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/internal/Configuration.java @@ -4,13 +4,17 @@ * 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; /** * @@ -40,24 +44,264 @@ public class Configuration implements IConfiguration, Comparable { 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 } @@ -133,7 +377,7 @@ public class Configuration implements IConfiguration, Comparable { 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); } @@ -159,7 +403,7 @@ public class Configuration implements IConfiguration, Comparable { fUrl = ""; } String result = memento.getString(MEMENTO_PASSWORD); - + if (result == null) { fPassword = ""; } else { @@ -196,7 +440,7 @@ public class Configuration implements IConfiguration, Comparable { 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++) { @@ -206,4 +450,67 @@ public class Configuration implements IConfiguration, Comparable { 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