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.DigitalIO; import com.ur.urcap.api.domain.io.IO; import com.ur.urcap.api.domain.script.ScriptWriter; import urgrip.toolbar.IOHandler; import java.util.Collection; public class URGripInstallationNodeContribution implements InstallationNodeContribution { private final URGripInstallationNodeView view; private final InstallationAPIProvider apiProvider; public final static String KEY_GRIP_OPEN = "KEY_GRIP_OPEN"; public final static String KEY_GRIP_OPEN_DEFAULT="digital_out[0]"; public final static String KEY_GRIP_CLOSE = "KEY_GRIP_CLOSE"; public final static String KEY_GRIP_CLOSE_DEFAULT="digital_out[0]"; public final static String KEY_BLOWOUT="KEY_BLOWOUT"; public final static String KEY_BLOWOUT_DEFAULT="digital_out[1]"; public final static String KEY_COUPLE_OPEN = "KEY_COUPLE_OPEN"; public final static String KEY_COUPLE_OPEN_DEFAULT="digital_out[0]"; public final static String KEY_COUPLE_CLOSE = "KEY_COUPLE_CLOSE"; public final static String KEY_COUPLE_CLOSE_DEFAULT="digital_out[0]"; public final static String KEY_WAITFOR="KEY_WAITFOR"; public final static String KEY_WAITFOR_DEFAULT="digital_in[0]"; private DataModel model; public URGripInstallationNodeContribution(InstallationAPIProvider apiProvider, DataModel model, URGripInstallationNodeView view) { this.model = model; this.view = view; this.apiProvider=apiProvider; } @Override public void openView() { Collection ios = apiProvider.getInstallationAPI().getIOModel().getIOs(DigitalIO.class); view.setIO(ios, model); } @Override public void closeView() { } public boolean isDefined() { if(getGripOpenIO().isEmpty()) return false; if(getGripCloseIO().isEmpty()) return false; if(getCoupleOpenIO().isEmpty()) return false; if(getCoupleCloseIO().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 void setValue(String key, String value) { model.set(key, value); } public String getGripCloseIO() { return model.get(KEY_GRIP_CLOSE, KEY_GRIP_CLOSE_DEFAULT); } public String getGripOpenIO() { return model.get(KEY_GRIP_OPEN, KEY_GRIP_OPEN_DEFAULT); } public String getCoupleCloseIO() { return model.get(KEY_COUPLE_CLOSE, KEY_COUPLE_CLOSE_DEFAULT); } public String getCoupleOpenIO() { return model.get(KEY_COUPLE_OPEN, KEY_COUPLE_OPEN_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 setKeyGripOpenIO(String ioName) { if ("".equals(ioName)) { model.set(KEY_GRIP_OPEN, KEY_GRIP_OPEN_DEFAULT); } else { model.set(KEY_GRIP_OPEN, ioName); } } public void setKeyGripCloseIO(String ioName) { if ("".equals(ioName)) { model.set(KEY_GRIP_CLOSE, KEY_GRIP_CLOSE_DEFAULT); } else { model.set(KEY_GRIP_CLOSE, ioName); } } public void setKeyCoupleOpenIO(String ioName) { if ("".equals(ioName)) { model.set(KEY_COUPLE_OPEN, KEY_COUPLE_OPEN_DEFAULT); } else { model.set(KEY_COUPLE_OPEN, ioName); } } public void setKeyCoupleCloseIO(String ioName) { if ("".equals(ioName)) { model.set(KEY_COUPLE_CLOSE, KEY_COUPLE_CLOSE_DEFAULT); } else { model.set(KEY_COUPLE_CLOSE, 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_CLOSE, KEY_GRIP_CLOSE_DEFAULT); model.set(KEY_GRIP_OPEN, KEY_GRIP_OPEN_DEFAULT); model.set(KEY_COUPLE_CLOSE, KEY_COUPLE_CLOSE_DEFAULT); model.set(KEY_COUPLE_OPEN, KEY_COUPLE_OPEN_DEFAULT); model.set(KEY_BLOWOUT, KEY_BLOWOUT_DEFAULT); model.set(KEY_WAITFOR, KEY_WAITFOR_DEFAULT); } }