taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizard.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizardEditPage.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/FeatureWizardPage.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/VocabularyTermWizard.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/wizards/VocabularyTermWizardPage.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/LoginManager.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/StoreUtil.java -text
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.ui.IWorkbenchPreferencePage;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
-import eu.etaxonomy.taxeditor.preference.wizards.FeatureWizard;
import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.store.VocabularyStore;
/**
* @author n.hoffmann
/**
* Constructs a new menu preference page.
*
- * @param initialVocabulary the initial vocabulary contating all possible entries for the menu
- * @param preferedTerms a List containtg already prefered terms
- * @param title the title of the page
- * @param description describing text for the preference page
+ * @param initialVocabulary
+ * the initial vocabulary containing all possible entries for the menu
+ * @param preferedTerms
+ * a List containing already preferred terms
+ * @param title
+ * the title of the page
+ * @param description
+ * describing text for the preference page
* @param editable
* whether this vocabulary should be editable. Will render "New", "Edit", "Delete" buttons
* Handler for these buttons have to be overriding addEditButtonListeners()
newButton = new Button(buttonContainer, SWT.PUSH);
newButton.setText("New");
newButton.setLayoutData(new GridData(SWT.FILL));
+
+
+ editButton = new Button(buttonContainer, SWT.PUSH);
+ editButton.setText("Edit");
+ editButton.setLayoutData(new GridData(SWT.FILL));
+
+
+ removeButton = new Button(buttonContainer, SWT.PUSH);
+ removeButton.setText("Remove");
+ removeButton.setLayoutData(new GridData(SWT.FILL));
+
+
+ addNewButtonListeners();
+ addEditButtonListeners();
+ addDeleteButtonListeners();
+ }
+
+ /**
+ * Implement this method in MenuPreference Pages where the vocabulary should be editable, editable flag
+ * is set.
+ */
+ protected void addNewButtonListeners() {
newButton.addMouseListener(new MouseAdapter(){
/* (non-Javadoc)
}
});
-
- editButton = new Button(buttonContainer, SWT.PUSH);
- editButton.setText("Edit");
- editButton.setLayoutData(new GridData(SWT.FILL));
+ }
+
+ /**
+ * Implement this method in MenuPreference Pages where the vocabulary should be editable, editable flag
+ * is set.
+ */
+ protected void addEditButtonListeners() {
editButton.addMouseListener(new MouseAdapter(){
/* (non-Javadoc)
}
});
-
- removeButton = new Button(buttonContainer, SWT.PUSH);
- removeButton.setText("Remove");
- removeButton.setLayoutData(new GridData(SWT.FILL));
+ }
+
+ /**
+ * Implement this method in MenuPreference Pages where the vocabulary should be editable, editable flag
+ * is set.
+ */
+ protected void addDeleteButtonListeners() {
removeButton.addMouseListener(new MouseAdapter(){
/* (non-Javadoc)
@Override
public void mouseUp(MouseEvent e) {
super.mouseUp(e);
+
StoreUtil.notImplementedMessage();
}
});
-
- addEditButtonListeners();
- }
-
- /**
- * Implement this method in MenuPreference Pages where the vocabulary should be editable, editable flag
- * is set.
- */
- protected void addEditButtonListeners() {
- // empty default implementation
}
public void init(IWorkbench workbench) {
PreferencesUtil.firePreferencesChanged(this.getClass());
return true;
- }
+ }
}
\ No newline at end of file
package eu.etaxonomy.taxeditor.preference;
import org.apache.log4j.Logger;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
import eu.etaxonomy.cdm.model.common.ExtensionType;
+import eu.etaxonomy.cdm.model.common.VocabularyEnum;
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.taxeditor.preference.wizards.VocabularyTermWizard;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.store.VocabularyStore;
/**
"Choose which extension types to display",
true);
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.preference.AbstractMenuPreferences#addEditButtonListeners()
+ *
+ * TODO refactor into superclass
+ */
+ @Override
+ protected void addNewButtonListeners() {
+ newButton.addMouseListener(new MouseAdapter(){
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.MouseAdapter#mouseUp(org.eclipse.swt.events.MouseEvent)
+ */
+ @Override
+ public void mouseUp(MouseEvent e) {
+ super.mouseUp(e);
+ VocabularyTermWizard<ExtensionType> wizard = new VocabularyTermWizard<ExtensionType>(VocabularyEnum.ExtensionType);
+
+ WizardDialog dialog = new WizardDialog(StoreUtil.getShell(), wizard);
+ dialog.open();
+
+ tableViewer.setInput(VocabularyStore.getExtensionTypes());
+ }
+
+ });
+ }
}
*/\r
package eu.etaxonomy.taxeditor.preference;\r
\r
+import org.eclipse.jface.viewers.StructuredSelection;\r
import org.eclipse.jface.wizard.WizardDialog;\r
import org.eclipse.swt.events.MouseAdapter;\r
import org.eclipse.swt.events.MouseEvent;\r
\r
+import eu.etaxonomy.cdm.model.common.VocabularyEnum;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
-import eu.etaxonomy.taxeditor.preference.wizards.FeatureWizard;\r
+import eu.etaxonomy.taxeditor.preference.wizards.VocabularyTermWizard;\r
import eu.etaxonomy.taxeditor.store.StoreUtil;\r
import eu.etaxonomy.taxeditor.store.VocabularyStore;\r
\r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.taxeditor.preference.AbstractMenuPreferences#addEditButtonListeners()\r
+ * \r
+ * TODO refactor into superclass\r
*/\r
@Override\r
- protected void addEditButtonListeners() {\r
- super.addEditButtonListeners();\r
- \r
+ protected void addNewButtonListeners() {\r
newButton.addMouseListener(new MouseAdapter(){\r
\r
/* (non-Javadoc)\r
@Override\r
public void mouseUp(MouseEvent e) {\r
super.mouseUp(e);\r
- FeatureWizard wizard = new FeatureWizard(); \r
+ VocabularyTermWizard<Feature> wizard = new VocabularyTermWizard<Feature>(VocabularyEnum.Feature); \r
\r
WizardDialog dialog = new WizardDialog(StoreUtil.getShell(), wizard);\r
dialog.open();\r
}\r
\r
});\r
- \r
- \r
- // editing a feature is somewhat more complicated, because basically one can only edit the representation.\r
}\r
+ \r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.preference.AbstractMenuPreferences#addEditButtonListeners()\r
+ * \r
+ * TODO refactor into superclass\r
+ */\r
+// @Override\r
+// protected void addDeleteButtonListeners() {\r
+// removeButton.addMouseListener(new MouseAdapter(){\r
+//\r
+// /* (non-Javadoc)\r
+// * @see org.eclipse.swt.events.MouseAdapter#mouseUp(org.eclipse.swt.events.MouseEvent)\r
+// */\r
+// @Override\r
+// public void mouseUp(MouseEvent e) {\r
+// super.mouseUp(e);\r
+//\r
+// Feature selected = (Feature) ((StructuredSelection) tableViewer.getSelection()).getFirstElement();\r
+// \r
+// VocabularyStore.delete(selected);\r
+// \r
+// \r
+// tableViewer.setInput(VocabularyStore.getFeatures());\r
+// }\r
+// \r
+// });\r
+// }\r
}\r
--- /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.preference.wizards;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.wizard.Wizard;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.Representation;
+import eu.etaxonomy.cdm.model.common.VocabularyEnum;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.VocabularyStore;
+
+/**
+ * @author n.hoffmann
+ * @created 12.06.2009
+ * @version 1.0
+ */
+public class VocabularyTermWizard<T extends DefinedTermBase> extends Wizard {
+ private static final Logger logger = Logger.getLogger(VocabularyTermWizard.class);
+
+ public T term = null;
+
+ private VocabularyEnum vocabulary;
+
+ private boolean editMode = false;
+
+ /**
+ *
+ */
+ public VocabularyTermWizard(VocabularyEnum vocabulary){
+ this.vocabulary = vocabulary;
+ }
+
+ /**
+ *
+ * @param selectedFeature
+ */
+ public VocabularyTermWizard(VocabularyEnum vocabulary, T selectedTerm){
+ this(vocabulary);
+ this.term = selectedTerm;
+ editMode = true;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.Wizard#addPages()
+ */
+ @Override
+ public void addPages() {
+ super.addPages();
+
+ addPage(new VocabularyTermWizardPage());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.Wizard#performFinish()
+ */
+ @Override
+ public boolean performFinish() {
+
+ ConversationHolder conversation = CdmStore.NewTransactionalConversation();
+
+ if(editMode){
+ VocabularyStore.updateVocabulary(getVocabulary());
+ }else{
+ VocabularyStore.saveTerm(getTerm(), getVocabulary());
+ }
+
+ conversation.commit(true);
+
+ return true;
+ }
+
+ public VocabularyEnum getVocabulary(){
+ return vocabulary;
+ }
+
+ /**
+ *
+ * @param term
+ */
+ public void setTerm(T term) {
+ this.term = term;
+ }
+
+ /**
+ * @param text
+ * @param text2
+ * @param text3
+ */
+ public void setTerm(String termString, String label, String labelAbbrev) {
+ Class clazz = vocabulary.getClazz();
+
+ try {
+ term = (T) clazz.newInstance();
+
+ term.addRepresentation(new Representation(termString, label, labelAbbrev, Language.DEFAULT()));
+
+ } catch (InstantiationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ }
+
+ /**
+ * @return the term
+ */
+ public T getTerm() {
+ return term;
+ }
+
+ /**
+ * @return the editMode
+ */
+ public boolean isEditMode() {
+ return editMode;
+ }
+
+
+}
--- /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.preference.wizards;
+
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+
+/**
+ * @author n.hoffmann
+ * @created 12.06.2009
+ * @version 1.0
+ */
+public class VocabularyTermWizardPage<T extends DefinedTermBase> extends WizardPage implements ModifyListener {
+
+ private Text text_label;
+ private Text text_labelAbbreviation;
+ private Text text_description;
+
+ private T term = null;
+
+ /**
+ *
+ */
+ public VocabularyTermWizardPage() {
+ super("VOCABULARY_TERM_WIZARD_PAGE");
+ }
+
+ private static final Logger logger = Logger
+ .getLogger(VocabularyTermWizardPage.class);
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ public void createControl(Composite parent) {
+
+ String termLabel = getWizard().getVocabulary().getClazz().getSimpleName();
+
+ String title = getWizard().isEditMode() ? "Edit " + termLabel : "Create new " + termLabel;
+ this.setTitle(title);
+
+ Composite composite = new Composite(parent, SWT.NULL);
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 2;
+ gridLayout.horizontalSpacing = SWT.FILL;
+ gridLayout.verticalSpacing = SWT.FILL;
+ composite.setLayout(gridLayout);
+
+ // label
+ CLabel label_label = new CLabel(composite, SWT.NULL);
+ label_label.setText("Label");
+
+ text_label = new Text(composite, SWT.BORDER);
+ text_label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
+ text_label.addModifyListener(this);
+
+ // label abbreviation
+ CLabel label_labelAbbreviation = new CLabel(composite, SWT.NULL);
+ label_labelAbbreviation.setText("Label Abbreviation");
+
+ text_labelAbbreviation = new Text(composite, SWT.BORDER);
+ text_labelAbbreviation.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
+ text_labelAbbreviation.addModifyListener(this);
+
+ // descriptive text
+ CLabel label_description = new CLabel(composite, SWT.NULL);
+ label_description.setText("Description");
+ label_description.setLayoutData(new GridData(SWT.TOP));
+
+ text_description = new Text(composite, SWT.BORDER | SWT.MULTI);
+ text_description.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ text_description.addModifyListener(this);
+
+ setControl(composite);
+
+ if(getWizard().getTerm() != null){
+ DefinedTermBase<T> term = getWizard().getTerm();
+ text_label.setText(term.getLabel());
+ // why can't we access labelAbbreviation
+// text_labelAbbreviation.setText(feature.get)
+ // why can't we access the term string?
+// text_description.setText(feature.getT)
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
+ */
+ public void modifyText(ModifyEvent e) {
+ logger.warn("modified");
+ if(text_description.getText().length() > 0 &&
+ text_labelAbbreviation.getText().length() > 0 &&
+ text_label.getText().length() > 0 ){
+ setPageComplete(true);
+
+ getWizard().setTerm(text_description.getText(), text_label.getText(), text_labelAbbreviation.getText());
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.WizardPage#getWizard()
+ */
+ @Override
+ public VocabularyTermWizard getWizard() {
+ return (VocabularyTermWizard) super.getWizard();
+ }
+
+
+}