Project

General

Profile

« Previous | Next » 

Revision 6a534f27

Added by Katja Luther over 5 years ago

add button to select default source in distribution editor

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/l10n/Messages.java
287 287
    public static String DescriptiveDataSetComposite_TAXON_FILTER;
288 288
    public static String DescriptiveDataSetEditor_DELETE_FAIL_MESSAGE;
289 289
    public static String DescriptiveDataSetEditor_DELETE_FAIL_TITLE;
290
    public static String ChecklistEditor_DEFAULT_SOURCE;
291
    public static String ChecklistEditor_DEFAULT_SOURCE_TOOLTIP;
292
    public static String ChecklistEditor_SEARCH_TOOLTIP;
290 293
    static {
291 294
        // initialize resource bundle
292 295
        NLS.initializeMessages(BUNDLE_NAME, Messages.class);
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/l10n/messages.properties
266 266
DescriptiveDataSetEditor_DELETE_FAIL_TITLE=Could not delete
267 267
ChooseFromMultipleAcceptedTaxaDialog_CHOOSE_ACCEPTED_TAXON=Choose accepted taxon
268 268
ChooseFromMultipleAcceptedTaxaDialog_CHOOSE_ACCEPTED_TAXON_MESSAGE=The taxon is related with multiple accepted taxa. Please choose the one you want to open.
269

  
269
ChecklistEditor_DEFAULT_SOURCE=Choose Source
270
ChecklistEditor_DEFAULT_SOURCE_TOOLTIP=Choose a source which is added to every new distribution.
271
ChecklistEditor_SEARCH_TOOLTIP=Textfilter for Taxa
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/l10n/messages_de.properties
266 266
DescriptiveDataSetEditor_DELETE_FAIL_TITLE=L?schen fehlgesschlagen
267 267
ChooseFromMultipleAcceptedTaxaDialog_CHOOSE_ACCEPTED_TAXON=Akzeptiertes Taxon w?hlen
268 268
ChooseFromMultipleAcceptedTaxaDialog_CHOOSE_ACCEPTED_TAXON_MESSAGE=Das Taxon ist mit mehreren akzeptierten Taxa verkn?pft. Bitte w?hlen sie, welches sie ?ffnen m?chten.
269

  
269
ChecklistEditor_DEFAULT_SOURCE=Quelle ausw?hlen
270
ChecklistEditor_DEFAULT_SOURCE_TOOLTIP=W?hlen Sie eine Quelle aus, die jeder neu angelegten Verbreitung zugef?gt wird.
271
ChecklistEditor_SEARCH_TOOLTIP=Textfilter auf Taxa
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistLabelProvider.java
26 26

  
27 27
import eu.etaxonomy.cdm.api.service.IDescriptionService;
28 28
import eu.etaxonomy.cdm.api.service.IVocabularyService;
29
import eu.etaxonomy.cdm.common.CdmUtils;
30 29
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
31 30
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
32 31
import eu.etaxonomy.cdm.model.common.Language;
33 32
import eu.etaxonomy.cdm.model.common.OrderedTermBase;
34 33
import eu.etaxonomy.cdm.model.common.OrderedTermComparator;
34
import eu.etaxonomy.cdm.model.common.Representation;
35 35
import eu.etaxonomy.cdm.model.common.TermIdInVocabularyComparator;
36 36
import eu.etaxonomy.cdm.model.common.TermLanguageComparator;
37 37
import eu.etaxonomy.cdm.model.common.TermVocabulary;
38 38
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
39 39
import eu.etaxonomy.cdm.model.description.Distribution;
40
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
40 41
import eu.etaxonomy.cdm.model.description.TaxonDescription;
41 42
import eu.etaxonomy.cdm.model.name.TaxonName;
42 43
import eu.etaxonomy.cdm.model.taxon.Taxon;
......
87 88
    public String getColumnText(Object element, int columnIndex) {
88 89
       // descriptionService = CdmStore.getService(IDescriptionService.class);
89 90
        Taxon taxon = (Taxon) element;
90
        //TODO load areas by this list
91 91

  
92
       // List<TaxonDescription> listTaxonDescriptions = descriptionService.listTaxonDescriptions(taxon, null, null, null, null, null, DESC_INIT_STRATEGY);;
93 92
        Set<TaxonDescription> listTaxonDescriptions = taxon.getDescriptions();
94 93
        TaxonName nonViralName = HibernateProxyHelper.deproxy(taxon.getName());
95 94

  
......
99 98
            taxonName = (nonViralName != null) ? nonViralName.getNameCache() : null;
100 99
            return (taxonName != null) ? taxonName : DEFAULT_ENTRY;
101 100

  
102
 //       case 1:
103
//            String authorship = null;
104
//            authorship = (nonViralName != null) ? nonViralName.getAuthorshipCache() : null;
105
//            return (authorship != null) ? authorship : DEFAULT_ENTRY;
106
//        case 2:
107
//            String ref = null;
108
//            if (taxon.getName() != null) {
109
//                INomenclaturalReference nomenclaturalReference = HibernateProxyHelper.deproxy(
110
//                        nonVirlaName.getNomenclaturalReference(), Reference.class);
111
//                ref = (nomenclaturalReference != null) ? nomenclaturalReference.getAbbrevTitleCache() : null;
112
//            }
113
//            return (ref != null) ? ref : DEFAULT_ENTRY;
114 101
        case 1:
115 102
            if (PreferencesUtil.isShowRankInChecklistEditor()){
116 103
                String rank = null;
......
127 114
            for (TaxonDescription td : listTaxonDescriptions) {
128 115
                for (DescriptionElementBase deb : td.getElements()) {
129 116
                    if (deb instanceof Distribution) {
130

  
131

  
132 117
                        Distribution distribution = HibernateProxyHelper.deproxy(deb, Distribution.class);
133 118
                        if (distribution.getArea() != null){
134 119
                            if ( editor.getAreaPosition().get(distribution.getArea().getUuid()) != null && columnIndex == editor.getAreaPosition().get(distribution.getArea().getUuid())){
120
                                if (distribution.getStatus() == null){
121
                                    return DEFAULT_ENTRY;
122
                                }
123
                                PresenceAbsenceTerm term = distribution.getStatus();
124
                                Representation rep = distribution.getStatus().getPreferredRepresentation(CdmStore.getDefaultLanguage());
125
                                String label = rep.getAbbreviatedLabel();
126
                                if (label == null){
127
                                    label = rep.getLabel();
128
                                }
129
                                if (label == null){
130
                                    distribution.getStatus().getTitleCache();
131
                                }
135 132
                                if (PreferencesUtil.isShowSymbolInChecklistEditor()){
136
                                    return (distribution.getStatus().getSymbol() != null)?distribution.getStatus().getSymbol():CdmUtils.Nz(distribution.getStatus().getTitleCache());
133
                                    return (distribution.getStatus().getSymbol() != null)?distribution.getStatus().getSymbol():label;
137 134
                                }else{
138
                                    return (distribution.getStatus().getTitleCache() != null)?distribution.getStatus().getTitleCache():DEFAULT_ENTRY;
135
                                    return (label != null)?label:DEFAULT_ENTRY;
139 136
                                }
140 137
                            }
141 138
                        }
142
//                        String area = null;
143
//                        if (distribution.getArea() != null ){
144
//                            if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
145
//                                if (distribution.getArea().getIdInVocabulary() != null){
146
//                                    area = distribution.getArea().getIdInVocabulary();
147
//                                } else{
148
//                                    area = distribution.getArea().getTitleCache();
149
//                                }
150
//                            }else{
151
//                                area = distribution.getArea().getTitleCache();
152
//                            }
153
//
154
//                        }else{
155
//                            continue;
156
//                        }
157
//
158
//                        if(editor.getViewer() != null){
159
//                        	TableColumn column = viewer.getTable().getColumn(columnIndex);
160
//                        	if (area.equalsIgnoreCase(column.getText())) {
161
//
162
//                            }
163
//
164
//                        }
165 139
                    }
166 140
                }
167 141
            }
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/ChecklistEditorE4.java
9 9

  
10 10
package eu.etaxonomy.taxeditor.editor.view.checklist.e4;
11 11

  
12

  
12 13
import java.util.ArrayList;
13 14
import java.util.Arrays;
14 15
import java.util.Collection;
......
45 46
import org.eclipse.swt.events.SelectionEvent;
46 47
import org.eclipse.swt.layout.GridData;
47 48
import org.eclipse.swt.layout.GridLayout;
49
import org.eclipse.swt.widgets.Button;
48 50
import org.eclipse.swt.widgets.Composite;
51
import org.eclipse.swt.widgets.Display;
49 52
import org.eclipse.swt.widgets.Label;
50
import org.eclipse.swt.widgets.Menu;
51
import org.eclipse.swt.widgets.MenuItem;
52 53
import org.eclipse.swt.widgets.Table;
53 54
import org.eclipse.swt.widgets.TableColumn;
54 55
import org.eclipse.swt.widgets.Text;
......
60 61
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
61 62
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
62 63
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
64
import eu.etaxonomy.cdm.model.common.Representation;
65
import eu.etaxonomy.cdm.model.reference.Reference;
63 66
import eu.etaxonomy.cdm.model.taxon.Classification;
64 67
import eu.etaxonomy.cdm.model.taxon.Taxon;
65 68
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
......
75 78
import eu.etaxonomy.taxeditor.editor.view.checklist.filter.ChecklistEditorFilter;
76 79
import eu.etaxonomy.taxeditor.editor.view.checklist.listener.ChecklistFocusListener;
77 80
import eu.etaxonomy.taxeditor.editor.view.checklist.listener.ChecklistModifyListener;
81
import eu.etaxonomy.taxeditor.model.AbstractUtility;
78 82
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
79 83
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
80 84
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
......
83 87
import eu.etaxonomy.taxeditor.preference.wizard.AvailableDistributionWizard;
84 88
import eu.etaxonomy.taxeditor.store.CdmStore;
85 89
import eu.etaxonomy.taxeditor.store.StoreUtil;
90
import eu.etaxonomy.taxeditor.ui.dialog.selection.ReferenceSelectionDialog;
91
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
92
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
86 93
import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
87 94

  
88 95
/**
......
141 148
    private Map<UUID, Integer> areaPosition= new HashMap();
142 149

  
143 150
    private ToolItem toolItem;
151
    private ToolItem toolItem2;
144 152
	private ChecklistDropdownSelectionListenerE4 dropListener;
145 153
	private Text searchText;
154
	private EntitySelectionElement<Reference> defaultReferenceSelection;
155

  
156
	private Reference defaultSource = null;
146 157

  
147
	public Map<UUID, Integer> getAreaPosition() {
158
	public Reference getDefaultSource() {
159
        return defaultSource;
160
    }
161
    public Map<UUID, Integer> getAreaPosition() {
148 162
        return areaPosition;
149 163
    }
150 164
    /**
......
175 189
        taxonNodeService = CdmStore.getService(ITaxonNodeService.class);
176 190
        filter = new ChecklistEditorFilter();
177 191
        createTopComposite(parent);
192
      // createToolbar(parent);
178 193
        viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
179 194

  
180 195
        //the focuzsCellManager should return the distribution!!!
181 196
        TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer, new FocusCellOwnerDrawHighlighter (viewer));
182
        TableViewerEditor.create(viewer, focusCellManager, new ColumnViewerEditorActivationStrategy(viewer), TableViewerEditor.KEYBOARD_ACTIVATION);
197
        TableViewerEditor.create(viewer, focusCellManager, new ColumnViewerEditorActivationStrategy(viewer), TableViewerEditor.DEFAULT);
183 198

  
184 199

  
185 200
//        viewer.addSelectionChangedListener(new ISelectionChangedListener() {
......
213 228

  
214 229
        viewer.setContentProvider(new ChecklistContentProvider());
215 230
        viewer.setLabelProvider(this.labelProvider);
231
//        selectionChangedListener = (event -> selService.setSelection(event.getSelection()));
232
//        viewer.addSelectionChangedListener(selectionChangedListener);
233

  
216 234
        comparator = new ChecklistEditorComparator();
217 235
        viewer.setComparator(comparator);
218 236
        final ModifyListener modifyListener = new ChecklistModifyListener(viewer, filter, searchText);
......
221 239
        searchText.addModifyListener(modifyListener);
222 240
        createGridDataForViewerLayout();
223 241
        createStatusBar(parent);
224
        createToolbar(parent);
242

  
225 243
    }
226 244

  
227 245
    /**
......
234 252
        parent.setLayout(gridLayout);
235 253

  
236 254
       searchText = createSearchBar(parent);
237

  
255
      // createSetDefaultReferenceButton(parent);
238 256

  
239 257
       // getSite().setSelectionProvider(viewer);
240 258

  
259
    }
241 260

  
242 261

  
262
    /**
263
     * @param parent
264
     * @return
265
     */
266
    private void createSetDefaultReferenceButton(Composite parent) {
267
        CdmFormFactory cdmFormFactory = new CdmFormFactory(Display.getCurrent());
268
        defaultReferenceSelection = cdmFormFactory.createSelectionElement(Reference.class,
269
                        null, "Default Source Reference", null,
270
                        EntitySelectionElement.DELETABLE, SWT.NULL);
271

  
243 272

  
244 273

  
245
    }
246 274

  
247
	private void createGridDataForViewerLayout() {
275

  
276
        return;
277
    }
278
    private void createGridDataForViewerLayout() {
248 279
		GridData gridData = new GridData();
249 280
		gridData.verticalAlignment = GridData.FILL;
250 281
        gridData.horizontalSpan = 3;
......
259 290
     * @return
260 291
     */
261 292
    private Text createSearchBar(Composite parent) {
262
        Label searchLabel = new Label(parent, SWT.NONE);
263
        searchLabel.setText(Messages.ChecklistEditor_SEARCH);
293

  
294

  
295

  
296
//        FillLayout fillLayout = new FillLayout();
297
//
298
//        fillLayout.type = SWT.VERTICAL;
299
//        parent.setLayoutData(fillLayout);
300
//        Label searchLabel = new Label(parent, SWT.NONE);
301
//        searchLabel.setText(Messages.ChecklistEditor_SEARCH);
302
//        GridData gridDataLabel = new GridData();
303
//        gridDataLabel.horizontalSpan =1;
304
//        searchLabel.setLayoutData(gridDataLabel);
264 305
        final Text searchText = new Text(parent, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH | SWT.CANCEL);
265
        searchText.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
306
        GridData gridData = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
307

  
308
        searchText.setLayoutData(gridData);
266 309
        searchText.setForeground(EditorUtil.getColor(Resources.SEARCH_VIEW_FOREGROUND));
267 310
        searchText.setText(TYPE_FILTER_TEXT);
311
        searchText.setToolTipText(Messages.ChecklistEditor_SEARCH_TOOLTIP);
312

  
313

  
314
      //  Composite buttons = new Composite(parent, SWT.NONE);
315
        //buttons.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL ));
316
        Button button1 = new Button(parent, SWT.PUSH );
317
        GridData gridData2 = new GridData();
318
        gridData2.horizontalSpan = 1;
319
        button1.setLayoutData(gridData2);
320

  
321

  
322
        button1.setText(Messages.ChecklistEditor_DIST_STATUS);
323
        button1.setToolTipText(Messages.ChecklistEditor_DIST_STATUS_TOOLTIP);
324
        button1.addSelectionListener(new SelectionAdapter() {
325
            @Override
326
            public void widgetSelected(SelectionEvent event) {
327
                AvailableDistributionWizard availableDistributionWizard = new AvailableDistributionWizard();
328
                WizardDialog dialog = new WizardDialog(StoreUtil.getShell(),
329
                        availableDistributionWizard);
330

  
331
                int open = dialog.open();
332
                if(open == 0){
333
                    reload();
334
                }
335
            }
336
        });
337

  
338
        Button button2 = new Button(parent, SWT.PUSH );
339
        GridData gridData3 = new GridData();
340
        gridData2.horizontalSpan = 1;
341
        button2.setLayoutData(gridData3);
342

  
343

  
344
        button2.setText(Messages.ChecklistEditor_DEFAULT_SOURCE);
345
        button2.setToolTipText(Messages.ChecklistEditor_DEFAULT_SOURCE_TOOLTIP);
346
        button2.addSelectionListener(new SelectionAdapter() {
347

  
348
            @Override
349
            public void widgetSelected(SelectionEvent event) {
350
                defaultSource = ReferenceSelectionDialog.select(AbstractUtility.getShell(), null);
351

  
352
            }
353

  
354
        });
355

  
356
        parent.pack();
268 357
        return searchText;
269 358
    }
270 359

  
......
272 361
     * @param parent
273 362
     */
274 363
    private void createToolbar(Composite parent) {
275
        ToolBar toolBar = new ToolBar(parent, SWT.NONE);
364
        ToolBar toolBar = new ToolBar(parent, SWT.BORDER);
276 365
      //  toolItem = new ToolItem(toolBar, SWT.DROP_DOWN | SWT.BORDER);
277
        toolItem = new ToolItem(toolBar, SWT.BUTTON1);
366

  
367
        toolItem = new ToolItem(toolBar, SWT.PUSH| SWT.BORDER);
368

  
278 369

  
279 370
        toolItem.setText(Messages.ChecklistEditor_DIST_STATUS);
280 371
        toolItem.setToolTipText(Messages.ChecklistEditor_DIST_STATUS_TOOLTIP);
......
293 384
                }
294 385
            }
295 386
        });
387
        toolItem2 = new ToolItem(toolBar, SWT.PUSH | SWT.BORDER);
388

  
389

  
390
        toolItem2.setText(Messages.ChecklistEditor_DEFAULT_SOURCE);
391
        toolItem2.setToolTipText(Messages.ChecklistEditor_DEFAULT_SOURCE_TOOLTIP);
392
        //createToolbarItems();
393
      //  toolItem.addSelectionListener(dropListener);
394
        toolItem2.addSelectionListener(new SelectionAdapter() {
395
            @Override
396
            public void widgetSelected(SelectionEvent event) {
397
                defaultSource = ReferenceSelectionDialog.select(AbstractUtility.getShell(), null);
398
            }
399
        });
400

  
296 401
        toolBar.pack();
297 402
    }
298 403

  
299
	private void createToolbarItems() {
300
	    SortedSet<DefinedTermBase> termsList = getLabelProvider().getNamedAreas(false);
301
		dropListener = new ChecklistDropdownSelectionListenerE4(toolItem, this, termsList);
302 404

  
303
        for (DefinedTermBase<DefinedTermBase> term : termsList) {
304
            if(term!=null){
305
                dropListener.add(term);
306
            }
307
        }
308
	}
309 405

  
310 406
    private void createStatusBar(Composite composite) {
311 407
        GridData gridData = new GridData();
......
401 497
                if(term != null){
402 498
                   // restoreColumnWidth.put(columnIndex, PreferencesUtil.getPreferenceStore().getBoolean(term.getUuid().toString()));
403 499
                    areaPosition.put(term.getUuid(), columnIndex);
500
                    Representation rep = term.getPreferredRepresentation(CdmStore.getDefaultLanguage());
501
                    String label = rep.getAbbreviatedLabel() != null ? rep.getAbbreviatedLabel(): rep.getLabel();
502
                    if (label == null){
503
                        term.getTitleCache();
504
                    }
404 505
                    if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
405 506
                        if (term.getIdInVocabulary() != null){
406 507
                            titles.add(term.getIdInVocabulary());
407 508
                        } else{
408
                            titles.add(term.getTitleCache());
509
                            titles.add(label);
409 510
                        }
410 511
                    }else if (PreferencesUtil.isShowSymbol1InChecklistEditor()){
411 512
                        if (term.getSymbol() != null){
412 513
                            titles.add(term.getSymbol());
413 514
                        } else{
414
                            titles.add(term.getTitleCache());
515
                            titles.add(label);
415 516
                        }
416 517
                    }else if (PreferencesUtil.isShowSymbol2InChecklistEditor()){
417 518
                        if (term.getSymbol2() != null){
418 519
                            titles.add(term.getSymbol2());
419 520
                        } else{
420
                            titles.add(term.getTitleCache());
521
                            titles.add(label);
421 522
                        }
523
                    }else{
524
                        titles.add(label);
422 525
                    }
423 526
                    bounds.add(200);
424 527
                    columnIndex++;
......
610 713
    	    boolean isNew = true;
611 714

  
612 715
    	    Integer position = areaPosition.get(term.getUuid());
716
    	    Representation rep = term.getPreferredRepresentation(CdmStore.getDefaultLanguage());
613 717

  
614
    	    String termLable = term.getTitleCache();;
718
    	    String termLable = rep.getAbbreviatedLabel();
719
    	    if (termLable == null){
720
    	        termLable = rep.getLabel();
721
    	    }
615 722
            if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
616 723
                if (term.getIdInVocabulary() != null){
617 724
                    termLable = term.getIdInVocabulary();
......
626 733
                TableViewerColumn column= addTableViewerColumn(termLable, 200, position, term);
627 734
            }
628 735

  
629
           // acitivateNewColumnInDropDownMenu(term);
630
    	}
631

  
632

  
633 736

  
634
//    	for(DefinedTermBase term:terms.values()){
635
//    		int count = viewer.getTable().getColumnCount();
636
//
637
//    		//add new terms
638
//    		for (TableColumn column: columns){
639
//    		    if (terms.){
640
//    		        break;
641
//    		    }
642
//    		}
643
//
644
////    		String termLable = term.getTitleCache();;
645
////    		if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
646
////    			if (term.getIdInVocabulary() != null){
647
////    				termLable = term.getIdInVocabulary();
648
////    	        }
649
////    		}
650
////    		addTableViewerColumn(termLable, 200, count);
651
////    		acitivateNewColumnInDropDownMenu(term);
652
    //	}
737
    	}
653 738

  
654 739
        viewer.setLabelProvider(labelProvider);
655
//        getService().schedule(new ChecklistJob(LOADING_TAXA, selectedTaxonNodes), Job.LONG);
740

  
656 741
        table.setRedraw(true);
657 742
    	viewer.refresh();
658 743
    }
......
673 758
        }
674 759

  
675 760
    }
676
    private void acitivateNewColumnInDropDownMenu(DefinedTermBase term) {
677
		Menu menu = dropListener.getMenu();
678
		MenuItem[] items = menu.getItems();
679
		for(MenuItem item: items){
680
			if(item.getText().equalsIgnoreCase(term.getTitleCache())){
681
				item.setSelection(true);
682
				PreferencesUtil.getPreferenceStore().setValue(term.getUuid().toString(), true);
683
			}
684
		}
685
	}
686 761

  
687
	private void hideDistributionColumns(Collection<DefinedTermBase> oldTerms) {
688
		TableColumn[] columns = viewer.getTable().getColumns();
689
    	for(int i=4; i<columns.length; i++){
690
    		//remove all columns
691
    		columns[i].dispose();
692
    		Menu menu = dropListener.getMenu();
693
    		int itemCount = menu.getItemCount();
694
    		MenuItem item = menu.getItem(i-3);
695
    		item.setSelection(false);
696
    	}
697
    	if(oldTerms != null){
698
    		for(DefinedTermBase term : oldTerms){
699
    			PreferencesUtil.getPreferenceStore().setValue(term.getUuid().toString(), false);
700
    		}
701
    	}
702
	}
762

  
763

  
703 764

  
704 765
    /**
705 766
     * <p>
......
781 842
    public void changed(Object element) {
782 843
        if (element != null) {
783 844
            viewer.update(element, null);
845

  
784 846
            if (element instanceof Taxon){
785 847
                checklistEditorInput.addTaxonToSave((Taxon)element);
786 848
            }
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/DistributionEditingSupportE4.java
2 2

  
3 3
import java.util.ArrayList;
4 4
import java.util.Arrays;
5
import java.util.Collection;
6
import java.util.Comparator;
5 7
import java.util.List;
8
import java.util.Map;
6 9
import java.util.Set;
7 10
import java.util.SortedSet;
11
import java.util.UUID;
8 12

  
9 13
import javax.inject.Inject;
10 14

  
......
15 19
import org.eclipse.jface.viewers.CellEditor;
16 20
import org.eclipse.jface.viewers.ComboBoxViewerCellEditor;
17 21
import org.eclipse.jface.viewers.EditingSupport;
22
import org.eclipse.jface.viewers.ICellEditorListener;
18 23
import org.eclipse.jface.viewers.ISelection;
19 24
import org.eclipse.jface.viewers.ISelectionChangedListener;
20 25
import org.eclipse.jface.viewers.LabelProvider;
......
25 30
import org.eclipse.swt.widgets.TableColumn;
26 31

  
27 32
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
33
import eu.etaxonomy.cdm.model.common.OrderedTermComparator;
34
import eu.etaxonomy.cdm.model.common.Representation;
28 35
import eu.etaxonomy.cdm.model.common.TermType;
29 36
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
37
import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
30 38
import eu.etaxonomy.cdm.model.description.Distribution;
31 39
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
32 40
import eu.etaxonomy.cdm.model.description.TaxonDescription;
......
63 71
        	   public String getText(Object element) {
64 72
        	     if (element instanceof PresenceAbsenceTerm) {
65 73
        	    	 PresenceAbsenceTerm  status = (PresenceAbsenceTerm)element;
74
        	    	 Representation rep = status.getPreferredRepresentation(CdmStore.getDefaultLanguage());
75
        	    	 String label = null;
76
        	    	 if (rep != null){
77
        	    	     label = rep.getAbbreviatedLabel();
78
            	    	 if (label == null){
79
            	    	     label = rep.getLabel();
80
            	    	 }
81
        	    	 }else{
82
        	    	     label = status.getTitleCache();
83
        	    	 }
66 84
        	    	 String result = null;
67 85
        	    	 if (PreferencesUtil.isShowSymbolInChecklistEditor() && !StringUtils.isBlank(status.getSymbol())){
68
        	    		 result = status.getTitleCache() + "("+ status.getSymbol()+")";
86
        	    		 result = label + "("+ status.getSymbol()+")";
69 87
        	    	 }else{
70
        	    		 result = status.getTitleCache();
88
        	    		 result = label;
71 89
        	    	 }
72 90
        	    	 return result;
73 91
        	     }
......
78 96
        cellEditor.setContentProvider(new ArrayContentProvider());
79 97

  
80 98

  
81
        List<DefinedTermBase<?>> inputAll = new ArrayList<>();
99
        List<DefinedTermBase> inputAll = new ArrayList<>();
82 100
        PresenceAbsenceTerm noneTerm = PresenceAbsenceTerm.NewInstance();
83 101
        noneTerm.setTitleCache(" ", true);
84 102
        inputAll.add(noneTerm);
85
        List<DefinedTermBase<?>> input = CdmStore.getTermManager().getPreferredTerms(TermType.PresenceAbsenceTerm);
86
        inputAll.addAll(1, input);
103
        Collection<DefinedTermBase> input = CdmStore.getTermManager().getPreferredTerms(TermType.PresenceAbsenceTerm);
104
        List<DefinedTermBase> inputList = new ArrayList(input);
105
        Comparator<DefinedTermBase> comp = new OrderedTermComparator<>();
106
       // Collections.sort(inputList, comp);
107
        inputAll.addAll(1,inputList);
108

  
109

  
87 110
        cellEditor.setInput(inputAll);
111
        cellEditor.addListener(new ICellEditorListener() {
112

  
113
            @Override
114
            public void applyEditorValue() {
115
                // TODO Auto-generated method stub
116

  
117
            }
118

  
119
            @Override
120
            public void cancelEditor() {
121
                // TODO Auto-generated method stub
122

  
123
            }
124

  
125
            @Override
126
            public void editorValueChanged(boolean oldValidState, boolean newValidState) {
127
                fireStateChanged(cellEditor.getValue());
128

  
129
            }
130

  
131
        });
88 132

  
89 133

  
90 134
    }
......
100 144
    }
101 145

  
102 146
    @Override
103
    protected Object getValue(Object element) {
147
    protected PresenceAbsenceTerm getValue(Object element) {
104 148
        if (element instanceof Taxon) {
105 149
            Taxon taxon = (Taxon) element;
106 150
            String result = null;
......
113 157
            }
114 158

  
115 159
           //fireStateChanged(distributionForColumn);
116
            return result;
160
            return null;
117 161
        }
118 162
        return null;
119 163
    }
120 164

  
121
    protected void fireStateChanged(Distribution dist) {
165

  
166

  
167
    protected void fireStateChanged(Object dist) {
122 168
    	if (dist!= null){
123 169
	    	ISelection selection = new StructuredSelection(dist);
124
//	    	selService.setSelection(selection);
170
	    	selService.setSelection(selection);
125 171
    	}
126 172
    }
127 173

  
......
171 217
            for (DescriptionElementBase deb : td.getElements()) {
172 218
                if (deb instanceof Distribution) {
173 219
                    Distribution distribution = (Distribution) deb;
220
                    UUID areaUuid = null;
221
                    for (Map.Entry<UUID,Integer> entry: editor.getAreaPosition().entrySet()){
222
                        if (entry.getValue().intValue()== columnIndex){
223
                            areaUuid = entry.getKey();
224
                            break;
225
                        }
226
                    }
174 227
                    if (distribution.getArea() != null){
175
                        if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
176
                            if (column.getText().equalsIgnoreCase(distribution.getArea().getIdInVocabulary())) {
177
                                return distribution;
178
                            }
179
                        }else{
180
                            if (column.getText().equalsIgnoreCase(distribution.getArea().getTitleCache())) {
181
                                return distribution;
182
                            }
228
                        if (distribution.getArea().getUuid().equals(areaUuid)){
229
                            return distribution;
230

  
183 231
                        }
184 232
                    }
185 233
                }
......
200 248
                if (areaIndex == columnIndex){
201 249
                    NamedArea area = (NamedArea) term;
202 250
                    Distribution distribution = Distribution.NewInstance(area, occurenceStatus);
251
                    if (editor.getDefaultSource() != null){
252
                        DescriptionElementSource source = DescriptionElementSource.NewPrimarySourceInstance(editor.getDefaultSource(), "");
253
                        distribution.addSource(source);
254
                    }
203 255
                    Set<TaxonDescription> descriptions = taxon.getDescriptions();
204 256
                    if (!descriptions.isEmpty()) {
205 257
                        for (TaxonDescription desc : descriptions) {
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/DistributionEditorColumnViewerEditorActivationStrategy.java
1
/**
2
* Copyright (C) 2018 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.taxeditor.editor.view.checklist.e4;
10

  
11
import org.eclipse.jface.viewers.ColumnViewer;
12
import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
13
import org.eclipse.jface.viewers.ViewerCell;
14
import org.eclipse.swt.events.KeyEvent;
15
import org.eclipse.swt.events.KeyListener;
16

  
17
/**
18
 * @author k.luther
19
 * @since 17.10.2018
20
 *
21
 */
22
public class DistributionEditorColumnViewerEditorActivationStrategy extends ColumnViewerEditorActivationStrategy {
23

  
24
    private KeyListener customkeyboardActivationListener;
25
    /**
26
     * @param viewer
27
     */
28
    public DistributionEditorColumnViewerEditorActivationStrategy(ColumnViewer viewer) {
29
        super(viewer);
30
        // TODO Auto-generated constructor stub
31
    }
32

  
33
    /**
34
     * Enable activation of cell editors by keyboard
35
     *
36
     * @param enable
37
     *            <code>true</code> to enable
38
     */
39
    @Override
40
    public void setEnableEditorActivationWithKeyboard(boolean enable) {
41
        super.setEnableEditorActivationWithKeyboard(enable);
42
        if (enable) {
43
            if (customkeyboardActivationListener == null) {
44
                customkeyboardActivationListener = new KeyListener() {
45

  
46
                    @Override
47
                    public void keyPressed(KeyEvent e) {
48

  
49
                    }
50

  
51
                    @Override
52
                    public void keyReleased(KeyEvent e) {
53
                        ViewerCell cell = getFocusCell();
54

  
55
//                        if (cell != null) {
56
//                        getViewer().getColumnViewerEditor().handleEditorActivationEvent(new ColumnViewerEditorActivationEvent(
57
//                                cell, e));
58
//                        }
59
                    }
60

  
61
                };
62
                getViewer().getControl().addKeyListener(customkeyboardActivationListener);
63
            }
64
        }
65
    }
66

  
67
    /**
68
     * @return the cell holding the current focus
69
     */
70
    private ViewerCell getFocusCell() {
71
        return getViewer().getColumnViewerEditor().getFocusCell();
72
    }
73

  
74
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/DeleteTermBaseOperation.java
28 28
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
29 29
import eu.etaxonomy.taxeditor.store.CdmStore;
30 30
import eu.etaxonomy.taxeditor.store.StoreUtil;
31
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
31 32

  
32 33
/**
33 34
 * @author l.morris
......
69 70

  
70 71
			DeleteResult result =	CdmStore.getService(IVocabularyService.class).delete(termBase.getUuid());
71 72
			if (!result.isOk()){
72
				StringBuffer errorString = new StringBuffer();
73
				for (Exception e:result.getExceptions()){
74
					errorString.append(e.getMessage() + System.lineSeparator());
75
				}
76
				MessageDialog.openWarning(null, "Delete failed", errorString.toString());
77
			}
73
                StringBuffer errorString = new StringBuffer();
74
                for (Exception e:result.getExceptions()){
75
                    errorString.append(e.getMessage() + System.lineSeparator());
76
                }
77
                if (result.isAbort()){
78
                    MessageDialog.openWarning(null, "Delete failed", errorString.toString());
79
                }else{
80
                    if (result.getExceptions().iterator().hasNext()){
81
                        MessagingUtils.errorDialog("Delete failed", this.getClass(),null, TaxeditorStorePlugin.PLUGIN_ID, result.getExceptions().iterator().next(), true);
82
                    }else{
83
                        MessageDialog.openWarning(null, "Delete failed", errorString.toString());
84
                    }
85
                }
86
            }
78 87

  
79 88
		} else if (termBase instanceof DefinedTermBase) {
80 89

  
......
99 108
                for (Exception e:result.getExceptions()){
100 109
                    errorString.append(e.getMessage() + System.lineSeparator());
101 110
                }
102
                MessageDialog.openWarning(null, "Delete failed", errorString.toString());
111
                if (result.isAbort()){
112
                    MessageDialog.openWarning(null, "Delete failed", errorString.toString());
113
                }else{
114
                    if (result.getExceptions().iterator().hasNext()){
115
                        MessagingUtils.errorDialog("Delete failed", this.getClass(),null, TaxeditorStorePlugin.PLUGIN_ID, result.getExceptions().iterator().next(), true);
116
                    }else{
117
                        MessageDialog.openWarning(null, "Delete failed", errorString.toString());
118
                    }
119
                }
103 120
            }
104 121
		}
105 122

  
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
272 272
        try{
273 273
            if(CdmStore.isActive()){
274 274
                controller = CdmStore.getCurrentApplicationConfiguration();
275
                PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), predicate);
275
                PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), predicate);
276 276
                pref = controller.getPreferenceService().find(key);
277 277
            }
278 278
        }catch(Exception e){
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionStatusWizard.java
22 22
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
23 23
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
24 24
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
25
import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
26 25
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
27 26
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
28 27
import eu.etaxonomy.taxeditor.store.CdmStore;
......
125 124
                }
126 125
            }
127 126
           String saveCheckedElements = StringUtils.join(listUIIDChecked, ";");
128
           pref = CdmPreference.NewInstance(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableDistributionStatus, saveCheckedElements);
127
           pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, saveCheckedElements);
129 128

  
130 129
           PreferencesUtil.setPreferenceToDB(pref);
131 130
           CdmStore.getTermManager().setPreferredTerms(preferredTerms, aPage.getVocabularies().get(0).getTerms());
131
           PreferencesUtil.firePreferencesChanged(this.getClass());
132 132
           return true;
133 133
    }
134 134

  
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionWizard.java
84 84
            IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
85 85
            //ToDo, if whole vocabulary is selected, save the vocabulary not all areas
86 86

  
87
            PreferencesUtil.setPreferredNamedAreasForDistributionEditor(saveCheckedElements, saveGrayedElements, false);
87
           // PreferencesUtil.setPreferredNamedAreasForDistributionEditor(saveCheckedElements, saveGrayedElements, false);
88 88
            preferenceStore.setValue(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS, saveCheckedElements);
89 89
            preferenceStore.setValue(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS_GRAYED, saveGrayedElements);
90 90
            return true;

Also available in: Unified diff