From: <oms...@us...> - 2006-09-08 16:42:53
|
Revision: 1023 http://svn.sourceforge.net/azsmrc/?rev=1023&view=rev Author: omschaub Date: 2006-09-08 09:42:49 -0700 (Fri, 08 Sep 2006) Log Message: ----------- Filling in some of the general options.. this is a copy of the options from the old edit user dialog.. it is not working as of yet.. don't try it, I just needed it committed so I could work on it from home this weekend Modified Paths: -------------- trunk/azsmrc/lbms/azsmrc/plugin/gui/GUIEditUser.java Modified: trunk/azsmrc/lbms/azsmrc/plugin/gui/GUIEditUser.java =================================================================== --- trunk/azsmrc/lbms/azsmrc/plugin/gui/GUIEditUser.java 2006-09-08 15:52:49 UTC (rev 1022) +++ trunk/azsmrc/lbms/azsmrc/plugin/gui/GUIEditUser.java 2006-09-08 16:42:49 UTC (rev 1023) @@ -1,8 +1,14 @@ package lbms.azsmrc.plugin.gui; +import java.io.File; +import java.io.IOException; + import lbms.azsmrc.plugin.main.Plugin; import lbms.azsmrc.plugin.main.User; import lbms.azsmrc.plugin.main.Utilities; +import lbms.azsmrc.shared.DuplicatedUserException; +import lbms.azsmrc.shared.RemoteConstants; +import lbms.azsmrc.shared.UserNotFoundException; import lbms.tools.flexyconf.ContentProvider; import lbms.tools.flexyconf.FCInterface; import lbms.tools.flexyconf.FlexyConfiguration; @@ -17,11 +23,17 @@ import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.DirectoryDialog; import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.MessageBox; import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Tree; +import org.eclipse.swt.widgets.TreeItem; public class GUIEditUser { @@ -142,6 +154,11 @@ //pack and open shell Utilities.centerShellandOpen(shell); + //Non-Flexy config items + TreeItem item = new TreeItem(tree, SWT.NULL); + item.setText("General Settings"); + + FlexyConfiguration fc = Plugin.getPSFlexyConf(); FCInterface fci = fc.getFCInterface(); fci.setContentProvider(new ContentProvider() { @@ -177,18 +194,232 @@ fcm.addAsRoot(); } - /** - * Public method to open the dialog - * @param User _user - */ - public void open(User _user){ - if(instance == null) - loadGUI(_user); - else{ - if(shell != null || !shell.isDisposed()) - shell.setFocus(); + + private void addGeneralItems(Composite composite){ + // User Name Label + Label nameLabel = new Label(composite, SWT.NONE); + GridData gridData = new GridData(GridData.FILL_HORIZONTAL); + gridData.horizontalSpan = 1; + nameLabel.setLayoutData( gridData ); + nameLabel.setText("User Name:"); + + + //User Name Input field + final Text userName = new Text(composite,SWT.BORDER); + gridData = new GridData(GridData.FILL_HORIZONTAL); + gridData.horizontalSpan = 2; + gridData.widthHint = 100; + userName.setLayoutData( gridData); + userName.setText(user.getUsername()); + + //Combo Stuff + + //combo Label + Label combo_text = new Label(composite, SWT.NONE); + gridData = new GridData(GridData.FILL_HORIZONTAL); + gridData.horizontalSpan = 1; + combo_text.setLayoutData( gridData ); + combo_text.setText("Select User Type:"); + + final Combo combo = new Combo(composite, SWT.DROP_DOWN | SWT.READ_ONLY); + combo.add("Normal User"); + combo.add("Administrator"); + + + + if(user.checkAccess(RemoteConstants.RIGHTS_ADMIN)) + combo.select(1); + else + combo.select(0); + + + if(!user.checkRight(RemoteConstants.RIGHTS_ADMIN)){ + combo.setEnabled(false); } + + //---------Directory stuff ------------\\ + + + //output directory + Label outputDir_text = new Label(composite, SWT.NONE); + gridData = new GridData(GridData.FILL_HORIZONTAL); + gridData.horizontalSpan = 3; + outputDir_text.setLayoutData( gridData ); + outputDir_text.setText("Output Directory for User:"); + + //comp for directory input + Composite output_comp = new Composite(composite,SWT.NONE); + output_comp.setLayout(new GridLayout(3,false)); + + gridData = new GridData(GridData.FILL_HORIZONTAL); + gridData.horizontalSpan = 3; + output_comp.setLayoutData(gridData); + + + + //output directory input field + final Text outputDir = new Text(output_comp,SWT.BORDER); + gridData = new GridData(GridData.FILL_HORIZONTAL); + gridData.horizontalSpan = 2; + gridData.widthHint = 250; + outputDir.setLayoutData(gridData); + + outputDir.setText(user.getOutputDir()); + + //icon for output directory + Label outputDir_icon = new Label(output_comp, SWT.NONE); + gridData = new GridData(GridData.HORIZONTAL_ALIGN_END); + gridData.horizontalSpan = 1; + outputDir_icon.setLayoutData( gridData ); + outputDir_icon.setToolTipText("Click to choose directory"); + outputDir_icon.setImage(ImageRepository.getImage("folder")); + outputDir_icon.addListener(SWT.MouseDown, new Listener() { + public void handleEvent(Event e) { + DirectoryDialog dirDialog = new DirectoryDialog(shell); + dirDialog.setText("Please Choose Output Directory"); + dirDialog.setFilterPath(Plugin.getPluginInterface().getPluginDirectoryName()); + String selectedDir = dirDialog.open(); + + //need to check if selected dir has files and if so, does it have a comments dir + if(selectedDir == null){ + return; + }else{ + outputDir.setText(selectedDir); + } + + + } + }); + + //auto import directory + Label importDir_text = new Label(composite, SWT.NONE); + gridData = new GridData(GridData.FILL_HORIZONTAL); + gridData.horizontalSpan = 3; + importDir_text.setLayoutData( gridData ); + importDir_text.setText("Automatic Import Directory for User:"); + + //comp for directory input + Composite importDir_comp = new Composite(composite,SWT.NONE); + importDir_comp.setLayout(new GridLayout(3,false)); + + gridData = new GridData(GridData.FILL_HORIZONTAL); + gridData.horizontalSpan = 3; + importDir_comp.setLayoutData(gridData); + + + + //output directory input field + final Text importDir = new Text(importDir_comp,SWT.BORDER); + gridData = new GridData(GridData.FILL_HORIZONTAL); + gridData.horizontalSpan = 2; + gridData.widthHint = 250; + importDir.setLayoutData(gridData); + + importDir.setText(user.getAutoImportDir()); + + //icon for output directory + Label importDir_icon = new Label(importDir_comp, SWT.NONE); + gridData = new GridData(GridData.HORIZONTAL_ALIGN_END); + gridData.horizontalSpan = 1; + importDir_icon.setLayoutData( gridData ); + importDir_icon.setToolTipText("Click to choose directory"); + importDir_icon.setImage(ImageRepository.getImage("folder")); + importDir_icon.addListener(SWT.MouseDown, new Listener() { + public void handleEvent(Event e) { + DirectoryDialog dirDialog = new DirectoryDialog(shell); + dirDialog.setText("Please Choose Automatic Import Directory"); + dirDialog.setFilterPath(Plugin.getPluginInterface().getPluginDirectoryName()); + String selectedDir = dirDialog.open(); + File selectedDir_file = new File(selectedDir); + //need to check if selected dir has files and if so, does it have a comments dir + if(selectedDir == null){ + return; + }else if(!selectedDir_file.exists() || !selectedDir_file.isDirectory()){ + MessageBox mb = new MessageBox(Plugin.getDisplay().getActiveShell(),SWT.ICON_ERROR); + mb.setText("Error"); + mb.setMessage("Selected Directory does not exist, please choose a valid directory."); + mb.open(); + }else{ + importDir.setText(selectedDir); + } + + + } + }); + + //Button for Accept + Button commit = new Button(composite, SWT.PUSH); + gridData = new GridData(GridData.CENTER); + gridData.horizontalSpan = 1; + commit.setLayoutData( gridData); + commit.setText( "Accept"); + commit.addListener(SWT.Selection, new Listener() { + public void handleEvent(Event e) { + if(userName.getText().equalsIgnoreCase("") || + outputDir.getText().equalsIgnoreCase("")|| + importDir.getText().equalsIgnoreCase("")){ + MessageBox mb = new MessageBox(Plugin.getDisplay().getActiveShell(),SWT.ICON_ERROR); + mb.setText("Error"); + mb.setMessage("Please fill out all of the information."); + mb.open(); + return; + } + + + + //add the user to the XMLConfig file + try { + if(!user.getUsername().equalsIgnoreCase(userName.getText())){ + Plugin.getXMLConfig().renameUser(user.getUsername(),userName.getText()); + } + + Plugin.getXMLConfig().saveConfigFile(); + + User currentUser = Plugin.getXMLConfig().getUser(userName.getText()); + + + currentUser.setOutputDir(outputDir.getText()); + currentUser.setAutoImportDir(importDir.getText()); + + if(combo.getSelectionIndex() != 0) + currentUser.setRight(RemoteConstants.RIGHTS_ADMIN); + + + Plugin.getXMLConfig().saveConfigFile(); + } catch (IOException e1) { + Plugin.addToLog(e1.toString()); + } catch (UserNotFoundException e2) { + MessageBox mb = new MessageBox(Plugin.getDisplay().getActiveShell(),SWT.ICON_ERROR); + mb.setText("Error"); + mb.setMessage("Plugin is reporting a 'User Not Found' error. \n Possible error in your plugin config file. \nPlease Check your settings and try again."); + mb.open(); + Plugin.addToLog(e2.getMessage()); + e2.printStackTrace(); + }catch (DuplicatedUserException e2) { + MessageBox mb = new MessageBox(Plugin.getDisplay().getActiveShell(),SWT.ICON_ERROR); + mb.setText("Error"); + mb.setMessage("User name already exists."); + mb.open(); + return; + } + } + + }); + } + /** + * Public method to open the dialog + * @param User _user + */ + public void open(User _user){ + if(instance == null) + loadGUI(_user); + else{ + if(shell != null || !shell.isDisposed()) + shell.setFocus(); + } -} + } + + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |