package edu.cmu.minorthird.ui; import java.io.IOException; import edu.cmu.minorthird.text.MutableTextLabels; import edu.cmu.minorthird.text.TextBase; import edu.cmu.minorthird.text.TextLabelsLoader; import edu.cmu.minorthird.text.gui.TextBaseEditor; 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; /** * Hand-label some documents. * * @author William Cohen */ public class EditLabels extends UIMain{ // private data needed private CommandLineUtil.EditParams edit=new CommandLineUtil.EditParams(); public MutableTextLabels editorOutputLabels=null; public CommandLineUtil.EditParams getEditParameters(){ return edit; } public void setEditParameters(CommandLineUtil.EditParams p){ edit=p; } public String getEditLabelsHelp(){ return "<A HREF=\"http://minorthird.sourceforge.net/tutorials/EditLabels%20Tutorial.htm\">EditLabels Tutorial</A></html>"; } @Override public CommandLineProcessor getCLP(){ return new JointCommandLineProcessor(new CommandLineProcessor[]{gui,base, edit}); } // // invoke the TextBaseLabeler // @Override public void doMain(){ if(edit.editFile==null) throw new IllegalArgumentException("need to specify -edit"); TextBase textBase=base.labels.getTextBase(); try{ editorOutputLabels=new TextLabelsLoader().loadOps(textBase,edit.editFile); }catch(IOException ex){ System.out.println("Can't load from "+edit.editFile+": "+ex); return; } if(edit.trueType!=null){ editorOutputLabels.declareType(edit.trueType); } TextBaseEditor editor=TextBaseEditor.edit(editorOutputLabels,edit.editFile); if(edit.extractedType!=null) editor.getViewer().getGuessBox().setSelectedItem(edit.extractedType); if(edit.trueType!=null){ editor.getViewer().getTruthBox().setSelectedItem(edit.trueType); } if(base.showResult){ new ViewerFrame("Output of editing",new SmartVanillaViewer( editorOutputLabels)); } } @Override public Object getMainResult(){ return editorOutputLabels; } public static void main(String args[]){ new EditLabels().callMain(args); } }