package org.jboss.tools.switchyard.reddeer.wizard;
import org.jboss.reddeer.gef.editor.GEFEditor;
import org.jboss.reddeer.swt.api.Button;
import org.jboss.reddeer.swt.api.Combo;
import org.jboss.reddeer.swt.api.Text;
import org.jboss.reddeer.swt.impl.button.CheckBox;
import org.jboss.reddeer.swt.impl.button.PushButton;
import org.jboss.reddeer.swt.impl.button.RadioButton;
import org.jboss.reddeer.swt.impl.combo.LabeledCombo;
import org.jboss.reddeer.swt.impl.group.DefaultGroup;
import org.jboss.reddeer.swt.impl.text.LabeledText;
import org.jboss.reddeer.core.reference.ReferencedComposite;
import org.jboss.reddeer.uiforms.impl.section.DefaultSection;
/**
*
* @author apodhrad
*
*/
public class ExistingBPMNServiceWizard extends ExistingServiceWizard<ExistingBPMNServiceWizard> {
public static final String DIALOG_TITLE = "";
public ExistingBPMNServiceWizard() {
this(null);
}
public ExistingBPMNServiceWizard(GEFEditor editor) {
super(DIALOG_TITLE);
}
@Override
protected String getSelectionDialogTitle() {
return "Select Resource";
}
public RadioButton getRemoteREST() {
activate();
return new RadioButton("Remote REST");
}
public RadioButton getRemoteJMS() {
activate();
return new RadioButton("Remote JMS");
}
public RadioButton getKnowledgeContainer() {
activate();
return new RadioButton("Knowledge Container");
}
public RadioButton getProjectResource() {
activate();
return new RadioButton("Project Resource");
}
public ExistingBPMNServiceWizard selectRemoteREST() {
getRemoteREST().toggle(true);
if (!getRemoteREST().isSelected()) {
throw new RuntimeException("Cannot select Remote REST");
}
return this;
}
public ExistingBPMNServiceWizard selectRemoteJMS() {
getRemoteJMS().toggle(true);
if (!getRemoteJMS().isSelected()) {
throw new RuntimeException("Cannot select Remote JMS");
}
return this;
}
public ExistingBPMNServiceWizard selectKnowledgeContainer() {
getKnowledgeContainer().toggle(true);
if (!getKnowledgeContainer().isSelected()) {
throw new RuntimeException("Cannot select Knowledge Container");
}
return this;
}
public ExistingBPMNServiceWizard selectProjectResource() {
getProjectResource().toggle(true);
return this;
}
/* Remote JMS */
public Text getTruststoreLocation() {
activate();
return new LabeledText(new DefaultGroup("SSL Details"), "Truststore Location");
}
public Text getTruststorePassword() {
activate();
return new LabeledText(new DefaultGroup("SSL Details"), "Truststore Password");
}
public Text getKeystoreLocation() {
activate();
return new LabeledText(new DefaultGroup("SSL Details"), "Keystore Location");
}
public Text getKeystorePassword() {
activate();
return new LabeledText(new DefaultGroup("SSL Details"), "Keystore Password");
}
public Combo getUseSSL() {
activate();
return new LabeledCombo(new DefaultGroup("SSL Details"), "Use SSL");
}
public Text getMessagingPort() {
activate();
return new LabeledText(new DefaultGroup("JMS Details"), "Messaging Port");
}
public Text getRemotingPort() {
activate();
return new LabeledText(new DefaultGroup("JMS Details"), "Remoting Port");
}
public Text getHostName() {
activate();
return new LabeledText(new DefaultGroup("JMS Details"), "Host Name");
}
public Text getDeploymentID() {
activate();
return new LabeledText("Deployment ID");
}
public Text getScanInterval() {
activate();
return new LabeledText("Scan Interval:");
}
public CheckBox getScanForUpdates() {
activate();
return new CheckBox("Scan for updates");
}
public Text getBaseName() {
activate();
return new LabeledText("Base Name:");
}
public Text getVersion() {
activate();
return new LabeledText(new DefaultGroup("Release ID"), "Version:");
}
public Text getArtifactID() {
activate();
return new LabeledText(new DefaultGroup("Release ID"), "Artifact ID:");
}
public Text getGroupID() {
activate();
return new LabeledText(new DefaultGroup("Release ID"), "Group ID:");
}
public Text getSessionName() {
activate();
return new LabeledText("Session Name:");
}
/* Remote REST */
public Button getRemove() {
activate();
return new PushButton(new DefaultSection("Extra JAXB Classes"), "Remove");
}
public Button getAdd() {
activate();
return new PushButton(new DefaultSection("Extra JAXB Classes"), "Add");
}
public Combo getUseFormBasedAuthentication() {
activate();
return new LabeledCombo(new DefaultGroup("REST Details"), "Use Form Based Authentication");
}
public Text getTimeout() {
activate();
ReferencedComposite ref = null;
if (getRemoteJMS().isSelected()) {
ref = new DefaultGroup("JMS Details");
} else if (getRemoteREST().isSelected()) {
ref = new DefaultGroup("REST Details");
} else {
throw new IllegalStateException("This field is available only in Remote JMS/REST");
}
return new LabeledText(ref, "Timeout");
}
public Text getPassword() {
activate();
ReferencedComposite ref = null;
if (getRemoteJMS().isSelected()) {
ref = new DefaultGroup("JMS Details");
} else if (getRemoteREST().isSelected()) {
ref = new DefaultGroup("REST Details");
} else {
throw new IllegalStateException("This field is available only in Remote JMS/REST");
}
return new LabeledText(ref, "Password");
}
public Text getUserName() {
activate();
ReferencedComposite ref = null;
if (getRemoteJMS().isSelected()) {
ref = new DefaultGroup("JMS Details");
} else if (getRemoteREST().isSelected()) {
ref = new DefaultGroup("REST Details");
} else {
throw new IllegalStateException("This field is available only in Remote JMS/REST");
}
return new LabeledText(ref, "User Name");
}
public Text getRESTURL() {
activate();
return new LabeledText("REST URL");
}
}