package edu.cmu.minorthird.ui; import java.io.File; import edu.cmu.minorthird.text.MonotonicTextLabels; import edu.cmu.minorthird.text.NestedTextLabels; import edu.cmu.minorthird.text.gui.MixupDebugger; import edu.cmu.minorthird.util.CommandLineProcessor; import edu.cmu.minorthird.util.JointCommandLineProcessor; import edu.cmu.minorthird.util.gui.SmartVanillaViewer; import edu.cmu.minorthird.util.gui.ViewerFrame; /** * Run a mixup program. * * @author William Cohen */ public class DebugMixup extends UIMain{ // private data needed private CommandLineUtil.EditParams edit=new CommandLineUtil.EditParams(); private CommandLineUtil.MixupParams mixup=new CommandLineUtil.MixupParams(); public MonotonicTextLabels debuggerOutputLabels=null; public CommandLineUtil.MixupParams getMixupParameters(){ return mixup; } public void setMixupParameters(CommandLineUtil.MixupParams p){ mixup=p; } public CommandLineUtil.EditParams getEditParameters(){ return edit; } public void setEditParameters(CommandLineUtil.EditParams p){ edit=p; } public String getDebugMixupHelp(){ return "<A HREF=\"http://minorthird.sourceforge.net/tutorials/Mixup%20Tutorial.htm\">Mixup Tutorial</A></html>"; } @Override public CommandLineProcessor getCLP(){ return new JointCommandLineProcessor(new CommandLineProcessor[]{gui,base, edit,mixup}); } // // run the mixup program // @Override public void doMain(){ if(mixup.fileName==null) throw new IllegalArgumentException("need to specify -mixup"); if(edit.editFile==null) throw new IllegalArgumentException("need to specify -edit"); debuggerOutputLabels=new NestedTextLabels(base.labels); MixupDebugger debugger= MixupDebugger.debug(base.labels.getTextBase(),debuggerOutputLabels, edit.editFile,new File(mixup.fileName)); if(edit.extractedType!=null) debugger.getEditor().getViewer().getGuessBox().setSelectedItem( edit.extractedType); if(edit.trueType!=null) debugger.getEditor().getViewer().getTruthBox().setSelectedItem( edit.trueType); if(base.showResult){ new ViewerFrame("Output of "+mixup.fileName,new SmartVanillaViewer( debuggerOutputLabels)); } } @Override public Object getMainResult(){ return debuggerOutputLabels; } public static void main(String args[]){ new DebugMixup().callMain(args); } }