package eu.etaxonomy.taxeditor.printpublisher.wizard;
+import java.lang.reflect.InvocationTargetException;
import java.net.MalformedURLException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.widgets.Text;
import eu.etaxonomy.cdm.print.PublishConfigurator;
+import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.StoreUtil;
@Override
public boolean canFlipToNextPage() {
if(isPageComplete()){
- SelectTaxaWizardPage selectTaxaPage = (SelectTaxaWizardPage) getWizard().getPage(AbstractPublishWizard.PAGE_TAXA);
- selectTaxaPage.refresh();
-
- SelectFeatureTreeWizardPage selectFeatureTreePage = (SelectFeatureTreeWizardPage) getWizard().getPage(AbstractPublishWizard.PAGE_FEATURETREE);
- selectFeatureTreePage.refresh();
+ try {
+ getContainer().run(false, false, new IRunnableWithProgress() {
+
+ @Override
+ public void run(IProgressMonitor monitor) throws InvocationTargetException,
+ InterruptedException {
+ getConfigurator().setProgressMonitor(CdmProgressMonitorAdapter.CreateMonitor(monitor));
+
+ SelectTaxaWizardPage selectTaxaPage = (SelectTaxaWizardPage) getWizard().getPage(AbstractPublishWizard.PAGE_TAXA);
+ selectTaxaPage.refresh();
+
+ SelectFeatureTreeWizardPage selectFeatureTreePage = (SelectFeatureTreeWizardPage) getWizard().getPage(AbstractPublishWizard.PAGE_FEATURETREE);
+ selectFeatureTreePage.refresh();
+
+ }
+ });
+ } catch (InvocationTargetException e) {
+ PrintUtil.error(getClass(), e);
+ } catch (InterruptedException e) {
+ PrintUtil.error(getClass(), e);
+ }
return true;
}
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import java.util.UUID;
public class NamedAreaSelectionDialog extends
AbstractFilteredCdmResourceSelectionDialog<NamedArea> {
- private class IncludeTdwgAreaAction extends Action {
- /**
- * Creates a new instance of the class.
- */
- public IncludeTdwgAreaAction() {
- super("TDWG Areas", IAction.AS_CHECK_BOX);
- }
-
- public void run() {
- if(isChecked()){
- selectedVocabularies.add(VocabularyEnum.TdwgArea);
- }else{
- selectedVocabularies.remove(VocabularyEnum.TdwgArea);
- }
-
- initModel();
- }
- }
-
- private class IncludeWaterbodyOrCountryAction extends Action {
- /**
- * Creates a new instance of the class.
- */
- public IncludeWaterbodyOrCountryAction() {
- super("Waterbody Or Country", IAction.AS_CHECK_BOX);
- }
+ private class IncludeNamedAreaVocabulary extends Action {
+ private TermVocabulary<NamedArea> vocabulary;
- public void run() {
- if(isChecked()){
- selectedVocabularies.add(VocabularyEnum.WaterbodyOrCountry);
- }else{
- selectedVocabularies.remove(VocabularyEnum.WaterbodyOrCountry);
- }
-
- initModel();
- }
- }
-
- private class IncludeContinentAction extends Action {
/**
* Creates a new instance of the class.
*/
- public IncludeContinentAction() {
- super("Continent", IAction.AS_CHECK_BOX);
+ public IncludeNamedAreaVocabulary(TermVocabulary<NamedArea> vocabulary) {
+ super(vocabulary.getTitleCache(), IAction.AS_CHECK_BOX);
+ this.vocabulary = vocabulary;
}
-
- public void run() {
+
+ public void run(){
if(isChecked()){
- selectedVocabularies.add(VocabularyEnum.Continent);
+ selectedVocabularies.add(vocabulary);
}else{
- selectedVocabularies.remove(VocabularyEnum.Continent);
+ selectedVocabularies.remove(vocabulary);
}
initModel();
}
}
- private Collection<VocabularyEnum> selectedVocabularies;
+ private Collection<TermVocabulary<NamedArea>> selectedVocabularies = new ArrayList<TermVocabulary<NamedArea>>();
- private IncludeTdwgAreaAction includeTdwgAreaAction;
- private IncludeWaterbodyOrCountryAction includeWaterbodyOrCountryAction;
- private IncludeContinentAction includeContinentAction;
/**
* Creates a filtered selection dialog to select a named area.
super.fillViewMenu(menuManager);
- includeTdwgAreaAction = new IncludeTdwgAreaAction();
- menuManager.add(includeTdwgAreaAction);
- includeTdwgAreaAction.setChecked(true);
+ List<TermVocabulary<NamedArea>> vocabularies = CdmStore.getService(IVocabularyService.class).listByTermClass(NamedArea.class, null, null, null, null);
+ vocabularies.add(CdmStore.getService(IVocabularyService.class).getVocabulary(VocabularyEnum.TdwgArea));
+ vocabularies.add(CdmStore.getService(IVocabularyService.class).getVocabulary(VocabularyEnum.WaterbodyOrCountry));
+ vocabularies.add(CdmStore.getService(IVocabularyService.class).getVocabulary(VocabularyEnum.Continent));
- includeWaterbodyOrCountryAction = new IncludeWaterbodyOrCountryAction();
- menuManager.add(includeWaterbodyOrCountryAction);
- includeWaterbodyOrCountryAction.setChecked(true);
-
- includeContinentAction = new IncludeContinentAction();
- menuManager.add(includeContinentAction);
- includeContinentAction.setChecked(true);
+ for(TermVocabulary<NamedArea> vocabulary : vocabularies){
+ IncludeNamedAreaVocabulary action = new IncludeNamedAreaVocabulary(vocabulary);
+ menuManager.add(action);
+ action.setChecked(true);
+ }
}
-
/** {@inheritDoc} */
@Override
protected NamedArea getPersistentObject(UUID uuid) {
- for(VocabularyEnum selectedVocabulary : selectedVocabularies){
- TermVocabulary vocabulary = CdmStore.getService(IVocabularyService.class).getVocabulary(selectedVocabulary);
+ for(TermVocabulary<NamedArea> vocabulary : selectedVocabularies){
for(Object object : vocabulary.getTerms()){
CdmBase cdmBaseObject = (CdmBase) object;
if(uuid.equals(cdmBaseObject.getUuid())){
/** {@inheritDoc} */
@Override
protected void init() {
- // testing
- selectedVocabularies = new HashSet<VocabularyEnum>();
- selectedVocabularies.add(VocabularyEnum.TdwgArea);
- selectedVocabularies.add(VocabularyEnum.WaterbodyOrCountry);
- selectedVocabularies.add(VocabularyEnum.Continent);
+ selectedVocabularies = CdmStore.getService(IVocabularyService.class).listByTermClass(NamedArea.class, null, null, null, null);
+ selectedVocabularies.add(CdmStore.getService(IVocabularyService.class).getVocabulary(VocabularyEnum.TdwgArea));
+ selectedVocabularies.add(CdmStore.getService(IVocabularyService.class).getVocabulary(VocabularyEnum.WaterbodyOrCountry));
+ selectedVocabularies.add(CdmStore.getService(IVocabularyService.class).getVocabulary(VocabularyEnum.Continent));
}
/** {@inheritDoc} */
protected void initModel() {
Set<NamedArea> terms = new HashSet<NamedArea>();
- for(VocabularyEnum vocabularyEnum : selectedVocabularies){
- TermVocabulary vocabulary = (TermVocabulary) HibernateProxyHelper.deproxy(CdmStore.getService(IVocabularyService.class).getVocabulary(vocabularyEnum));
+ for(TermVocabulary<NamedArea> vocabulary : selectedVocabularies){
terms.addAll(vocabulary.getTermsOrderedByLabels(CdmStore.getDefaultLanguage()));
}