package urgrip.installation; import com.ur.urcap.api.contribution.InstallationNodeContribution; import com.ur.urcap.api.contribution.installation.InstallationAPIProvider; import com.ur.urcap.api.domain.data.DataModel; import com.ur.urcap.api.domain.io.IO; import com.ur.urcap.api.domain.script.ScriptWriter; import com.ur.urcap.api.domain.userinteraction.keyboard.KeyboardInputCallback; import com.ur.urcap.api.domain.userinteraction.keyboard.KeyboardInputFactory; import com.ur.urcap.api.domain.userinteraction.keyboard.KeyboardTextInput; import java.util.Collection; public class HelloWorldInstallationNodeContribution implements InstallationNodeContribution { private final HelloWorldInstallationNodeView view; private final InstallationAPIProvider apiProvider; public final static String KEY_GRIP="KEY_GRIP"; private final static String KEY_GRIP_DEFAULT="digital_out[0]"; public final static String KEY_BLOWOUT="KEY_BLOWOUT"; private final static String KEY_BLOWOUT_DEFAULT="digital_out[1]"; public final static String KEY_WAITFOR="KEY_WAITFOR"; private final static String KEY_WAITFOR_DEFAULT="digital_in[0]"; private DataModel model; public HelloWorldInstallationNodeContribution(InstallationAPIProvider apiProvider, DataModel model, HelloWorldInstallationNodeView view) { this.model = model; this.view = view; this.apiProvider=apiProvider; } @Override public void openView() { Collection ios = apiProvider.getInstallationAPI().getIOModel().getIOs(); view.setIO(ios); } @Override public void closeView() { setGripIO(getGripIO()); } public boolean isDefined() { if(getGripIO().isEmpty()) return false; if(getBlowoutIO().isEmpty()) return false; if(getWaitforIO().isEmpty()) return false; return true; } @Override public void generateScript(ScriptWriter writer) { // Store the popup title in a global variable so it is globally available to all Hello World program nodes. // writer.assign("hello_world_swing_popup_title", "\"" + getPopupTitle() + "\""); } public String getGripIO() { return model.get(KEY_GRIP, KEY_GRIP_DEFAULT); } public String getBlowoutIO() { return model.get(KEY_BLOWOUT, KEY_BLOWOUT_DEFAULT); } public String getWaitforIO() { return model.get(KEY_WAITFOR, KEY_WAITFOR_DEFAULT); } public void setGripIO(String ioName) { if ("".equals(ioName)) { model.set(KEY_GRIP, KEY_GRIP_DEFAULT); } else { model.set(KEY_GRIP, ioName); } } public void setBlowoutIO(String ioName) { if ("".equals(ioName)) { model.set(KEY_BLOWOUT, KEY_BLOWOUT_DEFAULT); } else { model.set(KEY_BLOWOUT, ioName); } } public void setWaitforIO(String ioName) { if ("".equals(ioName)) { model.set(KEY_WAITFOR, KEY_WAITFOR_DEFAULT); } else { model.set(KEY_WAITFOR, ioName); } } private void resetToDefaultValue() { model.set(KEY_GRIP, KEY_GRIP_DEFAULT); model.set(KEY_BLOWOUT, KEY_BLOWOUT_DEFAULT); model.set(KEY_WAITFOR, KEY_WAITFOR_DEFAULT); } }