taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonDescriptionOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonNodeOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonomicTreeOperation.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateUserOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteConceptRelationOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteDescriptionElementOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteImageOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonomicTreeOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTreeNodeOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteUserOperation.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/EditUserOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/IPostOperationEnabled.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/MoveImageInListOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/MoveTaxonOperation.java -text
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.operations;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author n.hoffmann
+ * @created Jan 19, 2010
+ * @version 1.0
+ */
+public class CreateUserOperation extends AbstractPersistentPostOperation {
+
+ private static final Logger logger = Logger
+ .getLogger(CreateUserOperation.class);
+
+ private User user;
+
+ /**
+ * @param label
+ * @param undoContext
+ * @param postOperationEnabled
+ * @param conversationEnabled
+ */
+ public CreateUserOperation(String label, IUndoContext undoContext, User user,
+ IPostOperationEnabled postOperationEnabled,
+ IConversationEnabled conversationEnabled) {
+ super(label, undoContext, postOperationEnabled, conversationEnabled);
+ this.user = user;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ bind();
+ CdmStore.getUserService().createUser(user);
+
+ return postExecute(null);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+}
package eu.etaxonomy.taxeditor.operations;
-import java.util.UUID;
-
import org.apache.log4j.Logger;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.operations.IUndoContext;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.model.common.User;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.StoreUtil;
* @created 02.07.2009
* @version 1.0
*/
-public class DeleteUserOperation extends AbstractPostOperation {
+public class DeleteUserOperation extends AbstractPersistentPostOperation {
private static final Logger logger = Logger
.getLogger(DeleteUserOperation.class);
-
- private UUID userUuid;
-
private User user;
/**
* @param postOperationEnabled
*/
public DeleteUserOperation(String label, IUndoContext undoContext,
- UUID userUuid, IPostOperationEnabled postOperationEnabled) {
- super(label, undoContext, postOperationEnabled);
-
- this.userUuid = userUuid;
+ User user, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
+ super(label, undoContext, postOperationEnabled, conversationEnabled);
+ this.user = user;
}
/* (non-Javadoc)
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
-
// Start the main progress monitor.
- IProgressMonitor newMonitor = StoreUtil.startMainMonitor(monitor,"Deleting User", 4);
+ IProgressMonitor newMonitor = StoreUtil.startMainMonitor(monitor,getLabel(), 4);
// Do one step
- newMonitor.worked(1);
+ newMonitor.worked(2);
try {
// Operation steps
-
- ConversationHolder conversation = CdmStore.NewTransactionalConversation();
- try{
- user = CdmStore.getUserService().find(userUuid);
- StoreUtil.isCanceled(newMonitor, 1);
-
- CdmStore.getUserService().delete(user);
- StoreUtil.isCanceled(newMonitor, 1);
-
- conversation.commit();
- StoreUtil.isCanceled(newMonitor, 1);
-
- return postExecute(null);
- }finally{
- conversation.close();
- }
+ bind();
+ StoreUtil.isCanceled(newMonitor, 1);
+
+ CdmStore.getUserService().delete(user);
+ StoreUtil.isCanceled(newMonitor, 1);
}
finally {
-
// Stop the progress monitor.
newMonitor.done();
}
-
+ return postExecute(null);
}
/* (non-Javadoc)
@Override
public IStatus redo(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
-
return execute(monitor, info);
}
@Override
public IStatus undo(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
-
- ConversationHolder conversation = CdmStore.NewTransactionalConversation();
- try{
- // store uuid for consecutive undo/redo steps
- userUuid = CdmStore.getUserService().save(user);
- conversation.commit();
-
- return postExecute(null);
- }finally{
- conversation.close();
- }
+ bind();
+ CdmStore.getUserService().createUser(user);
+ return postExecute(null);
}
}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.operations;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author n.hoffmann
+ * @created Jan 25, 2010
+ * @version 1.0
+ */
+public class EditUserOperation extends AbstractPersistentPostOperation {
+ private static final Logger logger = Logger
+ .getLogger(EditUserOperation.class);
+
+ private User user;
+
+ /**
+ * @param label
+ * @param undoContext
+ * @param postOperationEnabled
+ * @param conversationEnabled
+ */
+ public EditUserOperation(String label, IUndoContext undoContext, User user,
+ IPostOperationEnabled postOperationEnabled,
+ IConversationEnabled conversationEnabled) {
+ super(label, undoContext, postOperationEnabled, conversationEnabled);
+ this.user = user;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ bind();
+ CdmStore.getUserService().updateUser(user);
+ return postExecute(null);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+}
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.common.NotDefinedException;
import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.ui.handlers.HandlerUtil;
import eu.etaxonomy.cdm.model.common.User;
import eu.etaxonomy.taxeditor.operations.DeleteUserOperation;
-import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.user.view.UserManagerView;
/**
* @author n.hoffmann
*/
public Object execute(ExecutionEvent event) throws ExecutionException {
- ISelection menuSelection = HandlerUtil.getActiveMenuSelection(event);
- User user = (User) ((StructuredSelection) menuSelection).getFirstElement();
-
- // TODO refresh the list -> set postOperationEnabled to the real deal
- IPostOperationEnabled postOperationEnabled = (IPostOperationEnabled) HandlerUtil.getActivePart(event);
+ StructuredSelection menuSelection = (StructuredSelection) HandlerUtil.getActiveMenuSelection(event);
+
+ for (Object object : menuSelection.toArray()){
- IUndoableOperation operation = null;
- try {
- operation = new DeleteUserOperation(event.getCommand().getName(),
- StoreUtil.getUndoContext(), user.getUuid(), postOperationEnabled);
+ User user = (User) object;
+
+ // TODO refresh the list -> set postOperationEnabled to the real deal
+ UserManagerView userManagerView = (UserManagerView) HandlerUtil.getActivePart(event);
- StoreUtil.executeOperation(operation);
- } catch (NotDefinedException e) {
- logger.warn("Command name not set");
+ IUndoableOperation operation = null;
+ try {
+ operation = new DeleteUserOperation(event.getCommand().getName(),
+ StoreUtil.getUndoContext(), user, userManagerView, userManagerView);
+
+ StoreUtil.executeOperation(operation);
+ } catch (NotDefinedException e) {
+ logger.warn("Command name not set");
+ }
}
return null;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.FocusAdapter;
+import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
listViewer.setLabelProvider(new UserManagerLabelProvider());
listViewer.setInput(getAllUser());
+
+// listViewer.addDoubleClickListener(new IDoubleClickListener() {
+//
+// public void doubleClick(DoubleClickEvent event) {
+// if (event.getSelection() instanceof StructuredSelection) {
+//
+// Object element = ((StructuredSelection) event
+// .getSelection()).getFirstElement();
+// if (element instanceof User) {
+// handler = new EditUserHandler();
+// }
+// }
+// }
+// });
+
+ this.addListenerObject(new FocusAdapter() {
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.FocusAdapter#focusGained(org.eclipse.swt.events.FocusEvent)
+ */
+ @Override
+ public void focusGained(FocusEvent e) {
+ super.focusGained(e);
+ conversation.bind();
+ listViewer.getControl().setFocus();
+ }
+ });
}
/* (non-Javadoc)
listViewer.getControl().setFocus();
}
+
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
*/
public boolean postOperation(CdmBase objectAffectedByOperation) {
- listViewer.setInput(getAllUser());
+ List<User> allUsers = getAllUser();
+
+ listViewer.setInput(allUsers);
listViewer.refresh();
return true;
* @return
*/
private List<User> getAllUser(){
- return CdmStore.getUserService().list(null, 100000, 0, null, null);
+ return CdmStore.getUserService().list(null, null, null, null, null);
}
/* (non-Javadoc)
package eu.etaxonomy.taxeditor.user.wizard;
import org.apache.log4j.Logger;
+import org.eclipse.core.commands.operations.IUndoableOperation;
+import org.eclipse.core.runtime.Status;
import org.eclipse.jface.wizard.Wizard;
import eu.etaxonomy.cdm.model.common.User;
-import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.operations.CreateUserOperation;
+import eu.etaxonomy.taxeditor.operations.EditUserOperation;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.user.view.UserManagerView;
/**
private User user;
private UserWizardPage page;
private UserManagerView view;
+ private boolean createMode;
public UserWizard(UserManagerView view){
this.view = view;
setWindowTitle("User Wizard");
+ createMode = true;
}
public UserWizard(UserManagerView view, User user){
this(view);
- this.user = user;
+ if(user != null){
+ this.user = user;
+ createMode = false;
+ }
}
/* (non-Javadoc)
@Override
public boolean performFinish() {
- CdmStore.getUserService().save(page.getUser());
+ IUndoableOperation operation;
+ if(createMode){
+ operation = new CreateUserOperation("Create User",
+ StoreUtil.getUndoContext(), page.getUser(), view, view);
+ }else{
+ operation = new EditUserOperation("Edit User",
+ StoreUtil.getUndoContext(), page.getUser(), view, view);
+ }
- return view.postOperation(user);
+ return StoreUtil.executeOperation(operation) == Status.OK_STATUS ? true : false;
}
}
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Text;
-import org.springframework.security.userdetails.UsernameNotFoundException;
import eu.etaxonomy.cdm.model.agent.Person;
import eu.etaxonomy.cdm.model.common.User;
*/
public class UserWizardPage extends WizardPage implements ModifyListener{
- private static final Logger logger = Logger.getLogger(UserWizardPage.class);
+// private static final Logger logger = Logger.getLogger(UserWizardPage.class);
public static final String NAME = "USER_WIZARD_PAGE";
setPageComplete(false);
return NAME_TO_SHORT;
}
- try{
- CdmStore.getUserService().loadUserByUsername(newText);
+ if(CdmStore.getUserService().userExists(newText)){
setPageComplete(false);
return USER_EXISTS;
- }catch (UsernameNotFoundException e){}
+ }
setPageComplete(true);
return null;