eu.etaxonomy.taxeditor.application/icons/256color_32x32.gif -text
eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif -text
eu.etaxonomy.taxeditor.application/icons/256color_48x48.ico -text
+eu.etaxonomy.taxeditor.application/icons/check.png -text
eu.etaxonomy.taxeditor.application/icons/edit_16x16.gif -text
eu.etaxonomy.taxeditor.application/icons/specimen_derivate-16x16-32.png -text
eu.etaxonomy.taxeditor.application/plugin.xml -text
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/SaveHandler.java -text
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/TaxonomicEditorPlugin.java -text
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/BulkEditing.java -text
+eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/ChecklistPerspective.java -text
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/Default.java -text
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/DerivatePerspective.java -text
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/PolytomousKey.java -text
eu.etaxonomy.taxeditor.editor/build.properties -text
eu.etaxonomy.taxeditor.editor/icons/address-book-new.png -text
eu.etaxonomy.taxeditor.editor/icons/camera-photo.png -text
+eu.etaxonomy.taxeditor.editor/icons/check.png -text
eu.etaxonomy.taxeditor.editor/icons/derivate_view-16x16-32.png -text
eu.etaxonomy.taxeditor.editor/icons/edit_16x16.gif -text
eu.etaxonomy.taxeditor.editor/icons/emblem-photos.png -text
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages_de.properties -text
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/messages_en.properties -text
eu.etaxonomy.taxeditor.navigation/build.properties -text
+eu.etaxonomy.taxeditor.navigation/icons/check.png -text
eu.etaxonomy.taxeditor.navigation/icons/edit_16x16.gif -text
eu.etaxonomy.taxeditor.navigation/icons/preferences-system-windows.png -text
eu.etaxonomy.taxeditor.navigation/icons/system-search.png -text
plugin_customization.ini,\
icons/,\
OSGI-INF/l10n/plugin.properties,\
- splash.bmp,\
OSGI-INF/l10n/plugin_de.properties,\
- OSGI-INF/l10n/plugin_en.properties
+ OSGI-INF/l10n/plugin_en.properties,\
+ splash.bmp,\
id="eu.etaxonomy.taxeditor.application.perspective.derivates"\r
name="%perspective.name.2">\r
</perspective>\r
+ <perspective\r
+ class="eu.etaxonomy.taxeditor.perspective.ChecklistPerspective"\r
+ icon="icons/check.png"\r
+ id="eu.etaxonomy.taxeditor.perspective.checklistperspective"\r
+ name="Checklist">\r
+ </perspective>\r
\r
</extension>\r
<!--extension\r
/**
* Prefix to declare the version as beta
*/
- private static final String BETA_PREFIX = "[BETA]";
+ private static final String BETA_PREFIX = "[REDLIST]";
/**
* @return
--- /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.perspective;
+
+import org.eclipse.ui.IFolderLayout;
+import org.eclipse.ui.IPageLayout;
+
+import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
+import eu.etaxonomy.taxeditor.editor.view.media.MediaViewPart;
+import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
+import eu.etaxonomy.taxeditor.navigation.search.SearchResultView;
+import eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart;
+import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart;
+import eu.etaxonomy.taxeditor.editor.view.concept.ConceptViewPart;
+
+/**
+ * @author a.oppermann
+ * @created Nov 18, 2014
+ * @version 1.0
+ */
+public class ChecklistPerspective extends Default {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui
+ * .IPageLayout)
+ */
+ @Override
+ public void createInitialLayout(IPageLayout layout) {
+ IFolderLayout navigationFolder = layout.createFolder("navigation",
+ IPageLayout.LEFT, 0.25f, layout.getEditorArea());
+
+ navigationFolder.addView(TaxonNavigator.ID);
+ navigationFolder.addPlaceholder(SearchResultView.ID + ":*");
+
+ layout.addView(CdmDataSourceViewPart.ID, IPageLayout.BOTTOM, 0.6f, TaxonNavigator.ID);
+ IFolderLayout folder = layout.createFolder("Folder", IPageLayout.BOTTOM, 0.6f, layout.getEditorArea());
+ folder.addView(DescriptiveViewPart.ID);
+ folder.addView(DetailsViewPart.ID);
+ folder.addView(ConceptViewPart.ID);
+// folder.addView(MediaViewPart.ID);
+
+// createAdditionalFolder(layout, layout.getEditorArea());
+ }
+}
<classpathentry exported="true" kind="lib" path="lib/spring-security-remoting-3.1.3.RELEASE.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jena-core-2.11.2.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jena-iri-1.0.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.4.0-SNAPSHOT-sources.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.4.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.4.0-SNAPSHOT-sources.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.4.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.4.0-SNAPSHOT-sources.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.4.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.4.0-SNAPSHOT-sources.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.4.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.4.0-SNAPSHOT-sources.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.4.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.4.0-SNAPSHOT-sources.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.4.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.4.0-SNAPSHOT-sources.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.4.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.4.0-SNAPSHOT-sources.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.4.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.5.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.5.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.5.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.5.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.5.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.5.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.5.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.5.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.5.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.5.0-SNAPSHOT.jar" sourcepath="lib/cdmlib-persistence-3.5.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.5.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.5.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.5.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-3.5.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.5.0-SNAPSHOT-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-3.5.0-SNAPSHOT.jar"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
lib/spring-security-remoting-3.1.3.RELEASE.jar,
lib/jena-core-2.11.2.jar,
lib/jena-iri-1.0.2.jar,
- lib/cdmlib-commons-3.4.0-SNAPSHOT-sources.jar,
- lib/cdmlib-commons-3.4.0-SNAPSHOT.jar,
- lib/cdmlib-ext-3.4.0-SNAPSHOT-sources.jar,
- lib/cdmlib-ext-3.4.0-SNAPSHOT.jar,
- lib/cdmlib-io-3.4.0-SNAPSHOT-sources.jar,
- lib/cdmlib-io-3.4.0-SNAPSHOT.jar,
- lib/cdmlib-model-3.4.0-SNAPSHOT-sources.jar,
- lib/cdmlib-model-3.4.0-SNAPSHOT.jar,
- lib/cdmlib-persistence-3.4.0-SNAPSHOT-sources.jar,
- lib/cdmlib-persistence-3.4.0-SNAPSHOT.jar,
- lib/cdmlib-print-3.4.0-SNAPSHOT-sources.jar,
- lib/cdmlib-print-3.4.0-SNAPSHOT.jar,
- lib/cdmlib-remote-3.4.0-SNAPSHOT-sources.jar,
- lib/cdmlib-remote-3.4.0-SNAPSHOT.jar,
- lib/cdmlib-services-3.4.0-SNAPSHOT-sources.jar,
- lib/cdmlib-services-3.4.0-SNAPSHOT.jar
+ lib/cdmlib-commons-3.5.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-commons-3.5.0-SNAPSHOT.jar,
+ lib/cdmlib-ext-3.5.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-ext-3.5.0-SNAPSHOT.jar,
+ lib/cdmlib-io-3.5.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-io-3.5.0-SNAPSHOT.jar,
+ lib/cdmlib-model-3.5.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-model-3.5.0-SNAPSHOT.jar,
+ lib/cdmlib-persistence-3.5.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-persistence-3.5.0-SNAPSHOT.jar,
+ lib/cdmlib-print-3.5.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-print-3.5.0-SNAPSHOT.jar,
+ lib/cdmlib-remote-3.5.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-remote-3.5.0-SNAPSHOT.jar,
+ lib/cdmlib-services-3.5.0-SNAPSHOT-sources.jar,
+ lib/cdmlib-services-3.5.0-SNAPSHOT.jar
Import-Package: eu.etaxonomy.cdm.api.application
lib/odfdom-0.8.jar,\\r
lib/h2mig_pagestore_addon.jar,\\r
lib/spring-security-remoting-3.1.3.RELEASE.jar,\\r
- lib/cdmlib-commons-3.4.0-SNAPSHOT-sources.jar,\\r
- lib/cdmlib-commons-3.4.0-SNAPSHOT.jar,\\r
- lib/cdmlib-ext-3.4.0-SNAPSHOT-sources.jar,\\r
- lib/cdmlib-ext-3.4.0-SNAPSHOT.jar,\\r
- lib/cdmlib-io-3.4.0-SNAPSHOT-sources.jar,\\r
- lib/cdmlib-io-3.4.0-SNAPSHOT.jar,\\r
- lib/cdmlib-model-3.4.0-SNAPSHOT-sources.jar,\\r
- lib/cdmlib-model-3.4.0-SNAPSHOT.jar,\\r
- lib/cdmlib-persistence-3.4.0-SNAPSHOT-sources.jar,\\r
- lib/cdmlib-persistence-3.4.0-SNAPSHOT.jar,\\r
- lib/cdmlib-print-3.4.0-SNAPSHOT-sources.jar,\\r
- lib/cdmlib-print-3.4.0-SNAPSHOT.jar,\\r
- lib/cdmlib-remote-3.4.0-SNAPSHOT-sources.jar,\\r
- lib/cdmlib-remote-3.4.0-SNAPSHOT.jar,\\r
- lib/cdmlib-services-3.4.0-SNAPSHOT-sources.jar,\\r
- lib/cdmlib-services-3.4.0-SNAPSHOT.jar,\\r
lib/spring-security-remoting-3.1.3.RELEASE.jar,\\r
lib/jena-core-2.11.2.jar,\\r
- lib/jena-iri-1.0.2.jar\r
+ lib/jena-iri-1.0.2.jar,\\r
+ lib/cdmlib-commons-3.5.0-SNAPSHOT-sources.jar,\\r
+ lib/cdmlib-commons-3.5.0-SNAPSHOT.jar,\\r
+ lib/cdmlib-ext-3.5.0-SNAPSHOT-sources.jar,\\r
+ lib/cdmlib-ext-3.5.0-SNAPSHOT.jar,\\r
+ lib/cdmlib-io-3.5.0-SNAPSHOT-sources.jar,\\r
+ lib/cdmlib-io-3.5.0-SNAPSHOT.jar,\\r
+ lib/cdmlib-model-3.5.0-SNAPSHOT-sources.jar,\\r
+ lib/cdmlib-model-3.5.0-SNAPSHOT.jar,\\r
+ lib/cdmlib-persistence-3.5.0-SNAPSHOT-sources.jar,\\r
+ lib/cdmlib-persistence-3.5.0-SNAPSHOT.jar,\\r
+ lib/cdmlib-print-3.5.0-SNAPSHOT-sources.jar,\\r
+ lib/cdmlib-print-3.5.0-SNAPSHOT.jar,\\r
+ lib/cdmlib-remote-3.5.0-SNAPSHOT-sources.jar,\\r
+ lib/cdmlib-remote-3.5.0-SNAPSHOT.jar,\\r
+ lib/cdmlib-services-3.5.0-SNAPSHOT-sources.jar,\\r
+ lib/cdmlib-services-3.5.0-SNAPSHOT.jar\r
jars.compile.order = .\r
output.. = bin/\r
source.. = src/main/java/,\\r
eu.etaxonomy.taxeditor.editor.internal,
eu.etaxonomy.taxeditor.editor.name,
eu.etaxonomy.taxeditor.editor.name.handler,
+ eu.etaxonomy.taxeditor.editor.view.concept,
eu.etaxonomy.taxeditor.editor.view.dataimport,
eu.etaxonomy.taxeditor.editor.view.descriptive,
eu.etaxonomy.taxeditor.editor.view.media,
bin.includes = META-INF/,\
.,\
plugin.xml,\
- OSGI-INF/l10n/plugin.properties,\
icons/,\
p2.inf,\
+ OSGI-INF/l10n/plugin.properties,\
OSGI-INF/l10n/plugin_de.properties,\
OSGI-INF/l10n/plugin_en.properties
</editor>
<editor
class="eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor"
- icon="icons/address-book-new.png"
+ icon="icons/check.png"
id="eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor"
name="%editor.name.8">
</editor>
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.Text;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.SimpleSelectionProvider;
import eu.etaxonomy.taxeditor.editor.view.checklist.edit.DistributionEditingSupport;
-import eu.etaxonomy.taxeditor.editor.view.checklist.edit.RankEditingSupport;
import eu.etaxonomy.taxeditor.editor.view.checklist.filter.ChecklistEditorFilter;
import eu.etaxonomy.taxeditor.editor.view.checklist.listener.ChecklistDropdownSelectionListener;
import eu.etaxonomy.taxeditor.editor.view.checklist.listener.ChecklistFocusListener;
@Override
public void run() {
- viewer.setInput(taxonList);
+ viewer.setInput(taxonList);
}
});
monitor.worked(1);
private Label statusLabel;
private SortedSet<DefinedTermBase> terms = null;
+ private ToolItem toolItem;
+ private ChecklistDropdownSelectionListener dropListener;
/**
* @return the selectedTaxonNodes
parent.setLayout(gridLayout);
final Text searchText = createSearchBar(parent);
-
-// if (terms != null && !terms.isEmpty()) {
- createToolbar(parent);
-// }
+ createToolbar(parent);
viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
getSite().setSelectionProvider(viewer);
searchText.addFocusListener(new ChecklistFocusListener(searchText, modifyListener));
searchText.addModifyListener(modifyListener);
-
- // Layout the viewer
- GridData gridData = new GridData();
- gridData.verticalAlignment = GridData.FILL;
- gridData.horizontalSpan = 3;
- gridData.grabExcessHorizontalSpace = true;
- gridData.grabExcessVerticalSpace = true;
- gridData.horizontalAlignment = GridData.FILL;
- viewer.getControl().setLayoutData(gridData);
+ createGridDataForViewerLayout();
viewer.addFilter(filter);
- createColumns(viewer);
+ createTable();
viewer.setContentProvider(new ChecklistContentProvider());
- viewer.setLabelProvider(new ChecklistLabelProvider());
+ viewer.setLabelProvider(new ChecklistLabelProvider(viewer));
comparator = new ChecklistEditorComparator();
viewer.setComparator(comparator);
createStatusBar(parent);
}
+ private void createGridDataForViewerLayout() {
+ GridData gridData = new GridData();
+ gridData.verticalAlignment = GridData.FILL;
+ gridData.horizontalSpan = 3;
+ gridData.grabExcessHorizontalSpace = true;
+ gridData.grabExcessVerticalSpace = true;
+ gridData.horizontalAlignment = GridData.FILL;
+ viewer.getControl().setLayoutData(gridData);
+ }
+
/**
* @param parent
* @return
*/
private void createToolbar(Composite parent) {
ToolBar toolBar = new ToolBar(parent, SWT.NONE);
- ToolItem toolItem = new ToolItem(toolBar, SWT.DROP_DOWN | SWT.BORDER);
+ toolItem = new ToolItem(toolBar, SWT.DROP_DOWN | SWT.BORDER);
toolItem.setText("Distribution Status");
toolItem.setToolTipText("Show Distribution Status for selected Areas");
- ChecklistDropdownSelectionListener dropListener = new ChecklistDropdownSelectionListener(toolItem, this, terms);
+ createToolbarItems();
+ toolItem.addSelectionListener(dropListener);
+ toolBar.pack();
+ }
+
+ private void createToolbarItems() {
+ dropListener = new ChecklistDropdownSelectionListener(toolItem, this, terms);
for (DefinedTermBase<DefinedTermBase> term : terms) {
if(term!=null){
dropListener.add(term);
}
}
- toolItem.addSelectionListener(dropListener);
- toolBar.pack();
- }
+ }
private void createStatusBar(Composite composite) {
GridData gridData = new GridData();
statusLabel.setLayoutData(gridData);
}
- // This will create the columns for the table
- private void createColumns(TableViewer viewer) {
- Table table = viewer.getTable();
+ private void createTable() {
+ Table table = viewer.getTable();//new Table(parent, viewer.getTable().getStyle());
List<String> titles = new ArrayList<String>();
Collections.addAll(titles, "Taxon", "Author", "Reference", "Rank");
List<Integer> bounds = new ArrayList<Integer>();
Collections.addAll(bounds, 300, 200, 200, 200);
- Map<Integer, Boolean>restoreColumnWidth = new HashMap<Integer, Boolean>();
- if (terms != null) {
- int i = 4;
- for (DefinedTermBase<DefinedTermBase> term : terms) {
- if(term != null){
- restoreColumnWidth.put(i, PreferencesUtil.getPreferenceStore().getBoolean(term.getUuid().toString()));
- titles.add(term.getTitleCache());
- bounds.add(200);
- i++;
- }
- }
- }
-
- for (int i = 0; i < titles.size(); i++) {
+ Map<Integer, Boolean> restoreValuesForColumnWidth = restoreValuesForColumnWidth(titles, bounds);
+ createInitalDistributionColumns(table, titles, bounds, restoreValuesForColumnWidth);
+ table.setSortDirection(SWT.DOWN);
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+ }
+ /**
+ * This method creates initially the distribution columns for a table. It should only be called for creation.<br>
+ *<p>
+ *
+ *<b>Notice:</b> If you want to add additional columns later please use <b>addTableViewerColumn()</b>
+ *
+ * @param table
+ * @param titles
+ * @param bounds
+ * @param restoreValuesForColumnWidth
+ */
+ private void createInitalDistributionColumns(Table table,
+ List<String> titles, List<Integer> bounds,
+ Map<Integer, Boolean> restoreValuesForColumnWidth) {
+ for (int columnIndex = 0; columnIndex < titles.size(); columnIndex++) {
TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
- column.getColumn().setText(titles.get(i));
- column.getColumn().setWidth(bounds.get(i));
+ column.getColumn().setText(titles.get(columnIndex));
+ column.getColumn().setWidth(bounds.get(columnIndex));
column.getColumn().setResizable(true);
column.getColumn().setMoveable(true);
- column.getColumn().addSelectionListener(getSelectionAdapter(column.getColumn(), i));
- if (i == 1) {
+ column.getColumn().addSelectionListener(getSelectionAdapter(column.getColumn(), columnIndex));
+ if (columnIndex == 1) {
table.setSortColumn(column.getColumn());
}
- if (i == 3) {
- column.setEditingSupport(new RankEditingSupport(viewer, this));
+ if (columnIndex == 3) {
+ /** uncommented it for now because no rank editing is wanted **/
+// column.setEditingSupport(new RankEditingSupport(viewer, this));
}
- if (i >= 4) {
+ if (columnIndex >= 4) {
//read PrefrenceStore to setWidth according to last saved state
- if(restoreColumnWidth.get(i)){
+ if(restoreValuesForColumnWidth.get(columnIndex)){
column.getColumn().setWidth(100);
}else{
column.getColumn().setWidth(0);
}
- column.setEditingSupport(new DistributionEditingSupport(viewer, this, i));
+ column.setEditingSupport(new DistributionEditingSupport(viewer, this, columnIndex));
}
}
- table.setSortDirection(SWT.DOWN);
- table.setHeaderVisible(true);
- table.setLinesVisible(true);
- }
+ }
+
+ /**
+ * This methods loads the last opened distribution columns for the table viewer from the prefrence store.<br>
+ *<p>
+ * <b>Notice:</b> It adds also the TitleCache to the titles list for the header of each column.<p>
+ *
+ * @param titles
+ * @param bounds
+ * @return Map<Integer, Boolean>
+ */
+ private Map<Integer, Boolean> restoreValuesForColumnWidth(List<String> titles,
+ List<Integer> bounds) {
+ Map<Integer, Boolean> restoreColumnWidth = new HashMap<Integer, Boolean>();
+ if (terms != null) {
+ int columnIndex = 4;
+ for (DefinedTermBase<DefinedTermBase> term : terms) {
+ if(term != null){
+ restoreColumnWidth.put(columnIndex, PreferencesUtil.getPreferenceStore().getBoolean(term.getUuid().toString()));
+ titles.add(term.getTitleCache());
+ bounds.add(200);
+ columnIndex++;
+ }
+ }
+ }
+ return restoreColumnWidth;
+ }
+ /**
+ * This method adds new DistributionColumns to an existing table.
+ *
+ * @param title
+ * @param bound
+ * @param colNumber
+ * @return
+ */
+ private TableViewerColumn addTableViewerColumn(String title, int bound, final int colNumber) {
+ final TableViewerColumn viewerColumn = new TableViewerColumn(viewer, SWT.NONE);
+ final TableColumn column = viewerColumn.getColumn();
+ column.setText(title);
+ column.setWidth(200);
+ viewerColumn.setEditingSupport(new DistributionEditingSupport(viewer, this, colNumber));
+ column.setResizable(true);
+ column.setMoveable(true);
+ return viewerColumn;
+ }
+
+
+
/**
*
* pull data from database and set input for view
viewer.refresh();
}
+ /**
+ * This method should only be called for adding new Distribution columns and reloading the table.<br>
+ * It will hide the old distribution column and load the newly added columns.<br>
+ * <p>
+ * <b>Notice:</b> for data update please use <b>refresh()</b>
+ *
+ */
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ public void reload(){
+ //create new Items for Dropdown menue
+ Table table = viewer.getTable();
+ table.setRedraw(false);
+ SortedSet<DefinedTermBase> oldTerms = terms;
+ ChecklistLabelProvider labelProvider = new ChecklistLabelProvider();
+ terms = (SortedSet<DefinedTermBase>) labelProvider.getTermsOrderedByLabels(labelProvider.getNamedAreas(), CdmStore.getDefaultLanguage());
+ SortedSet<DefinedTermBase> newTerms = terms;
+ toolItem.removeSelectionListener(dropListener);
+ hideDistributionColumns(oldTerms);
+ createToolbarItems();
+ toolItem.addSelectionListener(dropListener);
+ for(DefinedTermBase term:newTerms){
+ int count = viewer.getTable().getColumnCount();
+ addTableViewerColumn(term.getTitleCache(), 200, count);
+ acitivateNewColumnInDropDownMenu(term);
+ }
+ viewer.setLabelProvider(new ChecklistLabelProvider(viewer));
+ getService().schedule(new ChecklistJob("loading Taxa", selectedTaxonNodes), Job.LONG);
+ table.setRedraw(true);
+ viewer.refresh();
+ }
+
+ private void acitivateNewColumnInDropDownMenu(DefinedTermBase term) {
+ Menu menu = dropListener.getMenu();
+ MenuItem[] items = menu.getItems();
+ for(MenuItem item: items){
+ if(item.getText().equalsIgnoreCase(term.getTitleCache())){
+ item.setSelection(true);
+ PreferencesUtil.getPreferenceStore().setValue(term.getUuid().toString(), true);
+ }
+ }
+ }
+
+ private void hideDistributionColumns(SortedSet<DefinedTermBase> oldTerms) {
+ TableColumn[] columns = viewer.getTable().getColumns();
+ for(int i=4; i<columns.length; i++){
+ //remove all columns
+ columns[i].dispose();
+ Menu menu = dropListener.getMenu();
+ int itemCount = menu.getItemCount();
+ MenuItem item = menu.getItem(i-3);
+ item.setSelection(false);
+ }
+ if(oldTerms != null){
+ for(DefinedTermBase term : oldTerms){
+ PreferencesUtil.getPreferenceStore().setValue(term.getUuid().toString(), false);
+ }
+ }
+ }
+
/**
* <p>
* Getter for the field <code>service</code>.
@Override
public void doSaveAs() {
- // TODO Auto-generated method stub
-
}
@Override
@Override
public boolean isSaveAsAllowed() {
- // TODO Auto-generated method stub
return false;
}
*/
@Override
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- // TODO Auto-generated method stub
-
}
/*
*/
@Override
public void contextStop(IMemento memento, IProgressMonitor monitor) {
- // TODO Auto-generated method stub
// IStructuredSelection sel = (IStructuredSelection) this.viewer.getSelection();
// if (sel.isEmpty()) {
// return;
*/
@Override
public void contextRefresh(IProgressMonitor monitor) {
- // TODO Auto-generated method stub
-
}
/*
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.TableColumn;
import eu.etaxonomy.cdm.api.service.IDescriptionService;
import eu.etaxonomy.cdm.api.service.ITermService;
*/
public class ChecklistLabelProvider extends LabelProvider implements ITableLabelProvider {
- public static final String DEFAULT_ENTRY = "-";
+ public static final String DEFAULT_ENTRY = "";
private IDescriptionService descriptionService;
private final List<DefinedTermBase<?>> namedAreas;
-
-
+ TableViewer viewer = null;
/**
*
namedAreas = loadNamedAreas();
}
+ public ChecklistLabelProvider(TableViewer viewer) {
+ namedAreas = loadNamedAreas();
+ this.viewer = viewer;
+ }
+
/*
* (non-Javadoc)
*
* .Object, int)
*/
/** {@inheritDoc} */
- @Override
+ @Override
public String getColumnText(Object element, int columnIndex) {
descriptionService = CdmStore.getService(IDescriptionService.class);
Taxon taxon = (Taxon) element;
//TODO load areas by this list
- SortedSet<DefinedTermBase<?>> sortedNamedAreas = (SortedSet<DefinedTermBase<?>>) getTermsOrderedByLabels(namedAreas, CdmStore.getDefaultLanguage());
List<TaxonDescription> listTaxonDescriptions = descriptionService.listTaxonDescriptions(taxon, null, null, null, null, null, DESC_INIT_STRATEGY);;
NonViralName<?> nonVirlaName = HibernateProxyHelper.deproxy(taxon.getName(), NonViralName.class);
if (deb instanceof Distribution) {
Distribution distribution = (Distribution) deb;
String area = distribution.toString();
- if(sortedNamedAreas != null){
- Object[] array = sortedNamedAreas.toArray();
- DefinedTermBase<DefinedTermBase> term = (DefinedTermBase<DefinedTermBase>) array[columnIndex-4];
- if(term != null){
- if (area.equalsIgnoreCase(term.getTitleCache())) {
- return (distribution.getStatus().getTitleCache() != null)?distribution.getStatus().getTitleCache():DEFAULT_ENTRY;
- }
- }
+ if(viewer != null){
+ TableColumn column = viewer.getTable().getColumn(columnIndex);
+ if (area.equalsIgnoreCase(column.getText())) {
+ return (distribution.getStatus().getTitleCache() != null)?distribution.getStatus().getTitleCache():DEFAULT_ENTRY;
+ }
}
}
}
import eu.etaxonomy.cdm.api.service.IDescriptionService;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.Distribution;
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
cellEditor.setLabelProvider(new LabelProvider());
cellEditor.setContentProvider(new ArrayContentProvider());
// TODO set input
- List<PresenceAbsenceTermBase> input = CdmStore.getTermManager()
- .getPreferredTerms(PresenceAbsenceTermBase.class);
+// List<PresenceAbsenceTermBase> input = CdmStore.getTermManager()
+// .getPreferredTerms(PresenceAbsenceTermBase.class);
+ List<DefinedTermBase<?>> input = CdmStore.getTermManager().getPreferredTerms(TermType.PresenceAbsenceTerm);
cellEditor.setInput(input);
}
@Override
protected void setValue(Object element, Object value) {
- if (element instanceof Taxon && value instanceof PresenceAbsenceTermBase) {
+ if (element instanceof Taxon && value instanceof PresenceAbsenceTermBase) {
Taxon taxon = (Taxon) element;
PresenceAbsenceTermBase occurenceStatus = (PresenceAbsenceTermBase) value;
Distribution distribution = getDistributionForColumn(taxon);
import java.util.SortedSet;
+import org.apache.log4j.Logger;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
public class ChecklistDropdownSelectionListener extends SelectionAdapter {
private final Menu menu;
- private final ToolItem dropdown;
private final ChecklistEditor editor;
private final SortedSet<DefinedTermBase> termSet;
-
+ private Logger logger = Logger.getLogger(ChecklistDropdownSelectionListener.class);
+
public ChecklistDropdownSelectionListener(ToolItem dropdown, ChecklistEditor editor,
SortedSet<DefinedTermBase> termSet) {
- this.dropdown = dropdown;
this.editor = editor;
this.termSet = termSet;
menu = new Menu(dropdown.getParent().getShell());
TableColumn column = null;
DefinedTermBase<DefinedTermBase> selectedTerm = null;
if (termSet != null) {
- int i = 0;
- for (DefinedTermBase<DefinedTermBase> term : termSet) {
- if (term != null) {
- if (selected.getText().equalsIgnoreCase(term.getTitleCache())) {
- selectedTerm = term;
- column = table.getColumn(4 + i);
- }
- i++;
- }
- }
+ TableColumn[] columns = viewer.getTable().getColumns();
+ for(int i=0; i<columns.length; i++){
+ if(selected.getText().equalsIgnoreCase(columns[i].getText())){
+ column = columns[i];
+ logger.info("Column no " +i +" Column Header "+ column.getText() );
+ for (DefinedTermBase<DefinedTermBase> term : termSet) {
+ if(column.getText().equalsIgnoreCase(term.getTitleCache())){
+ selectedTerm = term;
+ break;
+ }
+ }
+ }
+ }
}
if (column != null && column.getWidth() == 0) {
// save column status if shown or not
}
column.setWidth(0);
}
- viewer.refresh();
}
});
}
WizardDialog dialog = new WizardDialog(StoreUtil.getShell(),
availableDistributionWizard);
- dialog.open();
+ int open = dialog.open();
+ if(open == 0){
+ editor.reload();
+ }
}
});
new MenuItem(menu, SWT.SEPARATOR);
menu.setVisible(true);
}
}
+
+ public Menu getMenu(){
+ return menu;
+ }
}
\ No newline at end of file
plugin.xml,\
icons/,\
p2.inf,\
- OSGI-INF/
+ OSGI-INF/l10n/bundle.properties,\
+ OSGI-INF/l10n/bundle_en.properties,\
+ OSGI-INF/l10n/bundle_de.properties,\
+ OSGI-INF/l10n/messages.properties,\
+ OSGI-INF/l10n/messages_en.properties,\
+ OSGI-INF/l10n/messages_de.properties
+
+
</menu>
<command
commandId="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistViewHandler"
- icon="icons/edit_16x16.gif"
+ icon="icons/check.png"
label="%command.label.4"
style="push">
<visibleWhen
icons/,\
p2.inf,\
OSGI-INF/,\
- OSGI-INF/l10n/bundle.properties
+ OSGI-INF/l10n/bundle.properties,\
+ OSGI-INF/l10n/bundle_de.properties,\
+ OSGI-INF/l10n/bundle_en.properties,\
+ OSGI-INF/l10n/messages.properties,\
+ OSGI-INF/l10n/messages_de.properties,\
+ OSGI-INF/l10n/messages_en.properties
"http://www.biodiversitylibrary.org/openurl");
getPreferenceStore().setDefault(OPENURL_IMAGE_MAX_WIDTH, "1000");
getPreferenceStore().setDefault(OPENURL_IMAGE_MAX_HEIGHT, "1000");
+ getPreferenceStore().setDefault(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE, true);
}
/**
"The following has been set as your preferred nomenclatural code:\n\n\t"
+ NomenclaturalCodeHelper
.getDescription(code)
- + "\n\nYou can change the nomenclatural code at any time in the \"Preferences\" menu.");*/
+ + "\n\nYou iour is not consistent throughout the application. For DescriptionElemts and also PolytomousKeyNode.Question and PolytomousKeyNode.Statement it shows only the languages where text is available whereas for PolytomousKeyNode.modyfingText it shows a strange list of about 10-20 (different for different nodes) most of them starting with can change the nomenclatural code at any time in the \"Preferences\" menu.");*/
}
}
}
});
status = Status.OK_STATUS;
+ }else{
+ throw new RuntimeException("An error occurred during the update.");
}
}catch(Exception e){
status = new Status(IStatus.ERROR, TaxeditorStorePlugin.PLUGIN_ID, e.getMessage(), e);
- MessagingUtils.messageDialog("Could not run updater", getClass(), status.getMessage());
+ MessagingUtils.errorDialog("Could not complete updater", updater, status.getMessage(), status.getPlugin(), e, true);
}
}
<properties>
<java.codelevel>1.6</java.codelevel>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <cdmlib.version>3.4.0-SNAPSHOT</cdmlib.version>
+ <cdmlib.version>3.5.0-SNAPSHOT</cdmlib.version>
<!-- TODO can we use project.version ????? -->
<tycho.version>0.14.0</tycho.version>
<taxeditor.version>3.4.0-SNAPSHOT</taxeditor.version>