/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.gui.xpathchooser; import java.util.HashMap; import java.util.Map; import org.eclipse.swt.widgets.Display; import de.rcenvironment.core.component.model.endpoint.api.EndpointDescription; import de.rcenvironment.core.datamodel.api.EndpointActionType; import de.rcenvironment.core.datamodel.api.EndpointType; import de.rcenvironment.core.gui.workflow.editor.properties.EndpointEditDialog; import de.rcenvironment.core.gui.workflow.editor.properties.EndpointSelectionPane; import de.rcenvironment.core.gui.workflow.editor.properties.WorkflowNodeCommand; /** * A "Properties" view tab for configuring dynamic endpoints. Allows new channels to be added via XPathChooser. * * @author Markus Kunde * @author Markus Litz */ public class XPathChooserPropertyViewPane extends EndpointSelectionPane { protected EndpointSelectionPane[] allPanes; /** * Constructor. * * @param genericEndpointTitle title of generic end point * @param direction direction of endpoint * @param typeSelectionFactory type selector * @param executor executor */ public XPathChooserPropertyViewPane(String title, EndpointType direction, String dynEndpointIdToManage, String[] dynEndpointIdsToShow, String[] statEndpointNamesToShow, WorkflowNodeCommand.Executor executor) { super(title, direction, dynEndpointIdToManage, dynEndpointIdsToShow, statEndpointNamesToShow, executor); } public EndpointSelectionPane[] getAllPanes() { return allPanes; } public void setAllPanes(EndpointSelectionPane[] allPanes) { this.allPanes = allPanes; } @Override protected void onAddClicked() { EndpointEditDialog dialog = new XPathEditDialog(Display.getDefault().getActiveShell(), EndpointActionType.ADD, configuration, endpointType, dynEndpointIdToManage, false, icon, endpointManager.getDynamicEndpointDefinition(dynEndpointIdToManage) .getMetaDataDefinition(), new HashMap<String, String>()); super.onAddClicked(dialog); } @Override protected void onEditClicked() { final String name = (String) table.getSelection()[0].getData(); boolean isStaticEndpoint = endpointManager.getEndpointDescription(name).getEndpointDefinition().isStatic(); EndpointDescription endpoint = endpointManager.getEndpointDescription(name); Map<String, String> newMetaData = cloneMetaData(endpoint.getMetaData()); EndpointEditDialog dialog = new XPathEditDialog(Display.getDefault().getActiveShell(), EndpointActionType.EDIT, configuration, endpointType, dynEndpointIdToManage, isStaticEndpoint, icon, endpoint.getEndpointDefinition() .getMetaDataDefinition(), newMetaData); super.onEditClicked(name, dialog, newMetaData); } }