package org.eclipse.etrice.ui.behavior.dialogs; import org.eclipse.core.databinding.conversion.Converter; import org.eclipse.etrice.core.room.DetailCode; import org.eclipse.etrice.core.room.RoomFactory; public class StringToDetailCode extends Converter { public StringToDetailCode() { super(String.class, DetailCode.class); } @Override public Object convert(Object fromObject) { if (fromObject instanceof String) { String code = (String) fromObject; if (code.isEmpty()) return null; // TODOHRR: make work also for UNIX/Mac line endings String[] cmds = code.split("\r\n"); DetailCode dc = RoomFactory.eINSTANCE.createDetailCode(); for (int i = 0; i < cmds.length; i++) { dc.getCommands().add(cmds[i]); } // trim last command if empty if (cmds[cmds.length-1].isEmpty()) dc.getCommands().remove(cmds.length-1); return dc; } return null; } }