<handlers xmi:id="_WsXuMZ1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.handler.CreateRemoteServerHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.remoteserver.handler.CreateRemoteServerHandler" command="_nYPOkJ1XEe2Oid79gMgNzw"/>
<handlers xmi:id="_WsXuMp1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.handler.EditRemoteServerHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.remoteserver.handler.EditRemoteServerHandler" command="_m1wMkJ1XEe2Oid79gMgNzw"/>
<handlers xmi:id="_WsXuNJ1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.handler.DeleteRemoteServerHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.remoteserver.handler.DeleteRemoteServerHandler" command="_lvyqEJ1XEe2Oid79gMgNzw"/>
+ <handlers xmi:id="_l8zFcNkaEe231IdeAjpAvg" elementId="eu.etaxonomy.taxeditor.local.handler.MoveUpRemoteServerHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.remoteserver.handler.MoveUpRemoteServerHandler" command="_tEWW8NkaEe231IdeAjpAvg"/>
+ <handlers xmi:id="_8KIN0NkbEe231IdeAjpAvg" elementId="eu.etaxonomy.taxeditor.local.handler.MoveDownRemoteServerHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.remoteserver.handler.MoveDownRemoteServerHandler" command="_-iLDQNkbEe231IdeAjpAvg"/>
<menus xsi:type="menu:PopupMenu" xmi:id="_WsXuNZ1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.popupmenu.remoteServerViewPart">
<children xsi:type="menu:HandledMenuItem" xmi:id="_WsXuNp1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.handledmenuitem.new" label="New" command="_nYPOkJ1XEe2Oid79gMgNzw"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_WsXuN51XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.handledmenuitem.edit" label="Edit" command="_m1wMkJ1XEe2Oid79gMgNzw"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_WsXuOZ1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.handledmenuitem.delete" label="Delete" command="_lvyqEJ1XEe2Oid79gMgNzw"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_lMYVINkaEe231IdeAjpAvg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.moveup" label="Move up" command="_tEWW8NkaEe231IdeAjpAvg"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_6bF5INkbEe231IdeAjpAvg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.movedown" label="Move down" command="_-iLDQNkbEe231IdeAjpAvg"/>
</menus>
</elements>
</fragments>
<elements xsi:type="commands:Command" xmi:id="_lvyqEJ1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.command.deleteRemoteServer" commandName="Delete"/>
<elements xsi:type="commands:Command" xmi:id="_m1wMkJ1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.command.editRemoteServer" commandName="Edit"/>
<elements xsi:type="commands:Command" xmi:id="_nYPOkJ1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.command.newRemoteServer" commandName="New"/>
+ <elements xsi:type="commands:Command" xmi:id="_tEWW8NkaEe231IdeAjpAvg" elementId="eu.etaxonomy.taxeditor.local.command.moveUpRemoteServer" commandName="Move up"/>
+ <elements xsi:type="commands:Command" xmi:id="_-iLDQNkbEe231IdeAjpAvg" elementId="eu.etaxonomy.taxeditor.local.command.moveDownRemoteServer" commandName="Move down"/>
</fragments>
<fragments xsi:type="fragment:StringModelFragment" xmi:id="_swGH0GhvEee3K4uKJljEYg" featurename="handlers" parentElementId="xpath:/">
<elements xsi:type="commands:Handler" xmi:id="_rVEdIGcjEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.termtree.e4.handler.RemoveTermHandler" command="_fNBtQGcjEee0qLTtA2ZpVQ"/>
}
}
- //FIXME E4 migrate
-// @Override
-// public void showBusy(boolean busy) {
-// super.showBusy(busy);
-//// viewer.getTable().setEnabled(!busy);
-// if(busy){
-// partNameCache = getPartName();
-// setPartName(Messages.CdmDataSourceViewPart_1);
-// }else{
-// if(partNameCache != null){
-// setPartName(partNameCache);
-// }
-// }
-// }
-
public StructuredViewer getViewer() {
return viewer;
}
package eu.etaxonomy.taxeditor.view.remoteserver.common;
import java.io.File;
-import java.io.FileNotFoundException;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.XMLMemento;
-
-import eu.etaxonomy.cdm.config.CdmPersistentSourceUtils;
import eu.etaxonomy.cdm.config.ConfigFileUtil;
-import eu.etaxonomy.cdm.config.ICdmPersistentSource;
-import eu.etaxonomy.cdm.config.ICdmSource;
-import eu.etaxonomy.cdm.database.CdmDataSource;
-import eu.etaxonomy.cdm.database.CdmPersistentDataSource;
-import eu.etaxonomy.cdm.database.DataSourceNotFoundException;
-import eu.etaxonomy.cdm.database.ICdmDataSource;
-import eu.etaxonomy.taxeditor.model.MementoHelper;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.remoting.source.CdmPersistentRemoteSource;
-import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSource;
import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSourceException;
import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfo;
import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
-import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
public class CdmRemoteServerRepository{
private static final String DEFAULT_REMOTE_SERVER_FILENAME = "cdm_remote_servers.json";
-
- static List<CdmServerInfoConfig> cdmServerList = new ArrayList<>();
-
+ static List<CdmServerInfoConfig> cdmServerList = new ArrayList<>();
+
+
public static boolean delete(CdmServerInfoConfig remoteServerConfig) {
cdmServerList.remove(remoteServerConfig);
save();
return true;
}
-
- public static boolean check(CdmServerInfoConfig remoteServerConfig) {
-
- boolean contains = false;
+
+ public static Integer check(CdmServerInfoConfig remoteServerConfig) {
+
+ int index = 0;
for (CdmServerInfoConfig server: cdmServerList) {
if (server.getName().equals(remoteServerConfig.getName())) {
- contains = true;
- break;
+ return index;
}
+ index++;
}
- return contains;
-
+ return null;
+
}
-
+
public static boolean add(CdmServerInfoConfig newRemoteServer) {
// if (cdmServerList.containsKey(newRemoteServer)) {
// return false;
// }
-
+
cdmServerList.add(newRemoteServer);
return true;
}
-
+
public static boolean update(CdmServerInfoConfig updatedRemoteServer, String oldName) {
int i = 0;
boolean contains = false;
return true;
}
+ public static boolean moveUp(CdmServerInfoConfig updatedRemoteServer) {
+ int i = 0;
+ boolean contains = false;
+ for (CdmServerInfoConfig server: cdmServerList) {
+ if (server.getName().equals(updatedRemoteServer.getName())) {
+ contains = true;
+ break;
+ }
+ i++;
+ }
+ if (contains) {
+ cdmServerList.remove(i);
+ }
+
+ cdmServerList.add(--i, updatedRemoteServer);
+ return true;
+ }
+
+ public static boolean moveDown(CdmServerInfoConfig updatedRemoteServer) {
+ int i = 0;
+ boolean contains = false;
+ for (CdmServerInfoConfig server: cdmServerList) {
+ if (server.getName().equals(updatedRemoteServer.getName())) {
+ contains = true;
+ break;
+ }
+ i++;
+ }
+ if (contains) {
+ cdmServerList.remove(i);
+ }
+
+ cdmServerList.add(++i, updatedRemoteServer);
+ return true;
+ }
+
public static List<CdmServerInfoConfig> getAll() {
List<CdmServerInfoConfig> cdmServers = null;
try {
// TODO Auto-generated catch block
e.printStackTrace();
}
-
+
return cdmServers;
}
-
-
+
+
/**
* <p>save</p>
return CdmServerInfo.saveToConfigFile(cdmServerList, file);
}
-
-// public static ICdmPersistentSource replace(String strCdmSourceName, CdmServerInfoConfig remoteServer){
-// try {
-// return CdmPersistentDataSource.replace(strCdmSourceName, cdmSource);
-// } catch (Exception e) {
-// MessagingUtils.error(CdmRemoteServerRepository.class, "Error updating CDM Source", e);
-// }
-// return null;
-// }
- /**
- * <p>update</p>
- *
- * @param strDataSourceName a {@link java.lang.String} object.
- * @param dataSource a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
- * @return a {@link eu.etaxonomy.cdm.database.CdmPersistentDataSource} object.
- */
-// public static ICdmPersistentSource update(String strCdmSourceName, CdmRemoteSource cdmSource){
-// try {
-// return CdmPersistentRemoteSource.update(strCdmSourceName, cdmSource);
-// } catch (Exception e) {
-// MessagingUtils.error(CdmRemoteServerRepository.class, "Error updating CDM Source", e);
-//
-// }
-// return null;
-// }
-
- /*
- * Answer the workbench state file.
- */
- private static File getCdmServerFile() {
- IPath path = TaxeditorStorePlugin.getDefault().getStateLocation();
- if (path == null) {
- return null;
- }
- path = path.append(DEFAULT_REMOTE_SERVER_FILENAME);
- return path.toFile();
- }
+
}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2023 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.view.remoteserver.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
+import eu.etaxonomy.taxeditor.view.remoteserver.CdmRemoteServerViewPart;
+import eu.etaxonomy.taxeditor.view.remoteserver.common.CdmRemoteServerRepository;
+
+/**
+ * @author k.luther
+ * @date 12.04.2023
+ *
+ */
+public class MoveDownRemoteServerHandler extends AbstractRemoteServerHandler{
+ @Override
+ @CanExecute
+ public boolean canExecute(
+ @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
+ @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
+ MHandledMenuItem menuItem) {
+ boolean canExecute = false;
+ canExecute = thisPart.getObject() instanceof CdmRemoteServerViewPart
+ && selection!=null
+ && selection.size()==1
+ && selection.getFirstElement() instanceof CdmServerInfoConfig
+ && CdmRemoteServerRepository.check((CdmServerInfoConfig)selection.getFirstElement()) < CdmRemoteServerRepository.getAll().size()-1;
+ menuItem.setVisible(canExecute);
+ return canExecute;
+ }
+
+ @Override
+ public boolean specificExecute(CdmRemoteServerViewPart dataSourceViewPart, CdmServerInfoConfig container,
+ Shell shell) {
+ CdmRemoteServerRepository.moveDown(container);
+ CdmRemoteServerRepository.save();
+ return true;
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2023 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.view.remoteserver.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
+import eu.etaxonomy.taxeditor.view.remoteserver.CdmRemoteServerViewPart;
+import eu.etaxonomy.taxeditor.view.remoteserver.common.CdmRemoteServerRepository;
+
+/**
+ * @author k.luther
+ * @date 12.04.2023
+ *
+ */
+public class MoveUpRemoteServerHandler extends AbstractRemoteServerHandler{
+
+
+ @Override
+ @CanExecute
+ public boolean canExecute(
+ @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
+ @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
+ MHandledMenuItem menuItem) {
+ boolean canExecute = false;
+ canExecute = thisPart.getObject() instanceof CdmRemoteServerViewPart
+ && selection!=null
+ && selection.size()==1
+ && selection.getFirstElement() instanceof CdmServerInfoConfig
+ && CdmRemoteServerRepository.check((CdmServerInfoConfig)selection.getFirstElement()) > 0;
+ menuItem.setVisible(canExecute);
+ return canExecute;
+ }
+
+
+
+ @Override
+ public boolean specificExecute(CdmRemoteServerViewPart dataSourceViewPart, CdmServerInfoConfig container,
+ Shell shell) {
+ CdmRemoteServerRepository.moveUp(container);
+ CdmRemoteServerRepository.save();
+ return true;
+ }
+
+}
import eu.etaxonomy.taxeditor.view.remoteserver.common.CdmRemoteServerRepository;
/**
- * <p>CdmDataSourceWizard class.</p>
*
* @author n.hoffmann
- * @created 18.05.2009
+ * @author k.luther
+ * @created 23.03.2023
*/
public class CdmRemoteServerWizard extends Wizard {
private CdmRemoteServerWizardPage remoteServerPage;
-
+
private CdmServerInfoConfig remoteServer;
private String oldName;
-
+
public enum Mode {
CREATE,
EDIT,
super();
this.mode = Mode.CREATE;
setForcePreviousAndNextButtons(false);
- setWindowTitle("Datasource Dialog");
+ setWindowTitle("Remote Server Dialog");
}
public CdmRemoteServerWizard(CdmServerInfoConfig remoteServer, Mode mode) {
} else {
this.remoteServer = new CdmServerInfoConfig();
this.remoteServer.setName("");
- //CdmRemoteServerRepository.add(this.remoteServer);
}
- //setForcePreviousAndNextButtons(true);
setWindowTitle("Remote Server Dialog");
}
@Override
public void addPages() {
if (remoteServer != null) {
-
+
remoteServerPage = new CdmRemoteServerWizardPage(remoteServer.getName(), remoteServer, mode);
}else {
remoteServerPage = new CdmRemoteServerWizardPage("New remote server", remoteServer, mode);
}
this.addPage(remoteServerPage);
return;
-
+
}
@Override
public boolean performFinish() {
try {
CdmServerInfoConfig cdmServerConf = this.remoteServerPage.getRemoteServer();
- if (mode.equals(Mode.CREATE) && CdmRemoteServerRepository.check(cdmServerConf)) {
- while(CdmRemoteServerRepository.check(cdmServerConf)){
+ if (mode.equals(Mode.CREATE) && CdmRemoteServerRepository.check(cdmServerConf)!= null) {
+ while(CdmRemoteServerRepository.check(cdmServerConf) != null){
cdmServerConf.setName(cdmServerConf.getName()+ 1);
}