/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package eric.jobs; import eric.FileTools; import eric.GUI.palette.PaletteManager; import eric.GUI.pipe_tools; import java.util.ArrayList; import java.util.Enumeration; import rene.gui.Global; import rene.util.xml.XmlWriter; import rene.zirkel.ZirkelCanvas; import rene.zirkel.objects.ConstructionObject; import rene.zirkel.tools.DefineJobTool; /** * * @author erichake */ public class JobManager { ZirkelCanvas ZC; private String target_names=null; // Only for loading process... private ArrayList targets=new ArrayList(); private String backup=null; private String message_ok=Global.getParameter("job.message.ok", Global.Loc("job.message.ok")); private String message_failed=Global.getParameter("job.message.failed", Global.Loc("job.message.failed")); private boolean hidefinals=false; private boolean staticjob=false; private JobControlPanel controlPanel=null; private JobValidPanel validPanel=null; private boolean printExerciseArguments=true; private int ctrlX=3,ctrlY=3,ctrlW=374,ctrlH=162; private int validX,validY,validW=550,validH=36; public JobManager(ZirkelCanvas zc) { ZC=zc; } public void backup() { try { printExerciseArguments=false; // protect from recursively get Exercise arguments String file=FileTools.getCurrentFileSource(); printExerciseArguments=true; // Compress the byte representation of the file : byte[] b=StringCompressionUtils.Compress(file.getBytes()); // then save it into base64 format : backup=new String(Base64Coder.encode(b)); } catch (Exception ex) { System.out.println("backup error"); } } public void restore() { if (backup!=null) { try { String targets_backup=getTargetNames(); // decode the base64 representation of the compressed file : byte[] b=Base64Coder.decode(backup); // decompress the file : byte[] b1=StringCompressionUtils.Decompress(b); // restore the construction : FileTools.setCurrentFileSource(new String(b1)); setTargets(targets_backup); setTargetsColor(true); setHiddenToSuperHidden(); } catch (Exception ex) { } } } public ArrayList getTargets() { return targets; } public String getTargetNames() { String names=""; for (int i=0; i0)&&(printExerciseArguments)) { xml.startTagStart("Exercise"); xml.printArg("message_ok", message_ok); xml.printArg("message_failed", message_failed); xml.printArg("hidefinals", String.valueOf(hidefinals)); xml.printArg("staticjob", String.valueOf(staticjob)); xml.printArg("targets", getTargetNames()); xml.printArg("backup", backup); xml.finishTagNewLine(); } } /******************************* * GUI PART : *******************************/ public void init() { if (controlPanel!=null) { controlPanel.init(); } else if (validPanel!=null) { validPanel.init(ZC.getSize().width, ZC.getSize().height); } } public void addControlPanel() { removeControlPanel(); controlPanel=new JobControlPanel(this,ctrlX,ctrlY,ctrlW,ctrlH); ZC.add(controlPanel,0); ZC.repaint(); init(); } public void removeControlPanel() { if (controlPanel!=null) { ctrlX=controlPanel.getLocation().x; ctrlY=controlPanel.getLocation().y; ZC.remove(controlPanel); controlPanel=null; ZC.repaint(); } } public void addValidPanel() { removeValidPanel(); if (targets.size()>0) { validPanel=new JobValidPanel(this,0,0,validW,validH); ZC.add(validPanel,0); ZC.repaint(); init(); } } public void removeValidPanel() { if (validPanel!=null) { ZC.remove(validPanel); validPanel=null; ZC.repaint(); } } public void cancelControlDialog(){ hideControlDialog(false); } public void hideControlDialog(boolean createJob) { setTargetSelected(false); removeControlPanel(); pipe_tools.getContent().requestFocus(); if (createJob&&targets.size()>0) { backup(); addValidPanel(); setHiddenToSuperHidden(); } else { targets.clear(); backup=null; setSuperHiddenToHidden(); } setTargetsColor(true); PaletteManager.ClicOn("point"); } public void showControlDialog() { removeValidPanel(); restore(); setTargetsColor(false); setSuperHiddenToHidden(); addControlPanel(); setTargetsField(); setJobTool(); } public void setJobTool() { setTargetSelected(true); PaletteManager.deselectgeomgroup(); ZC.setTool(new DefineJobTool()); } public void setTargetsField() { if (controlPanel!=null) { controlPanel.setTargetslist(getTargetNames()); } } public void validate() { JobValidation v=new JobValidation(ZC); v.checkAllsteps(); } }