package ir.ac.iust.nlp.dependencyparser.inputoutput; import experiments.Hypothesis1; import ir.ac.iust.nlp.dependencyparser.BasePanel; import ir.ac.iust.nlp.dependencyparser.enumeration.EmphasizeSearchHits; import ir.ac.iust.nlp.dependencyparser.enumeration.SearchBy; import ir.ac.iust.nlp.dependencyparser.enumeration.SearchIn; import ir.ac.iust.nlp.dependencyparser.utility.ExampleFileFilter; import java.awt.Color; import java.awt.GridLayout; import java.awt.image.BufferedImage; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.LinkedList; import java.util.List; import javax.imageio.ImageIO; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; import net.sourceforge.chart2d.*; import org.maltparser.core.exception.MaltChainedException; import org.maltparser.core.syntaxgraph.DependencyGraph; import org.maltparser.core.syntaxgraph.DependencyStructure; import se.vxu.msi.malteval.corpus.MaltWord; import se.vxu.msi.malteval.exceptions.MaltEvalException; import se.vxu.msi.malteval.treeviewer.MaltTreeViewerGui; import se.vxu.msi.malteval.treeviewer.core.TreeViewerSentence; import se.vxu.msi.malteval.treeviewer.gui.TreeViewer; /** * * @author Mojtaba Khallash */ public final class ReadingPanel extends BasePanel { ReadWriteCoNLL reader_writer = null; boolean isInit = false; List<DependencyGraph> graphs; String dataFormatPath; Hypothesis1 h1; /** * Creates new form ReadingPanel */ public ReadingPanel(String dir) { super(dir); initComponents(); setDrop(); setCurrentDirectory(dir); try { reader_writer = new ReadWriteCoNLL(dataFormatPath + "conllx.xml"); } catch (Exception ex) { } lblLess.setVisible(false); pnlAdvancedParameter.setVisible(false); } public void setCurrentDirectory(String dir) { dataFormatPath = dir + File.separator + "appdata" + File.separator + "dataformat" + File.separator; txtInputFile.setText(dir + File.separator + "Treebank" + File.separator + "Persian" + File.separator + "test.conll"); } private void setDrop() { initDrop(txtInputFile, false); initDrop(txtFormatPath, false); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { buttonGroup1 = new javax.swing.ButtonGroup(); pnlParameter = new javax.swing.JPanel(); lblInputFile = new javax.swing.JLabel(); txtInputFile = new javax.swing.JTextField(); btnBrowseInputFile = new javax.swing.JButton(); pnlAdvancedParameter = new javax.swing.JPanel(); pnlDataFormat = new javax.swing.JPanel(); rbPredefinedFormat = new javax.swing.JRadioButton(); rbCustomFormat = new javax.swing.JRadioButton(); cboDataFormat = new javax.swing.JComboBox(); txtFormatPath = new javax.swing.JTextField(); btnBrowseDataFormat = new javax.swing.JButton(); lblCharSet = new javax.swing.JLabel(); cboCharSet = new javax.swing.JComboBox(); btnReadAll = new javax.swing.JToggleButton(); pnlMore = new javax.swing.JPanel(); lblMore = new javax.swing.JLabel(); lblLess = new javax.swing.JLabel(); tabDependencyInfo = new javax.swing.JTabbedPane(); pnlPlainOutput = new javax.swing.JPanel(); lblIncomingArc = new javax.swing.JLabel(); lblOutgoingArc = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane(); txtPlainOutput = new javax.swing.JTextArea(); pnlTree = new javax.swing.JPanel(); pnlDT = new javax.swing.JPanel(); lblViewMode = new javax.swing.JLabel(); cboViewMode = new javax.swing.JComboBox(); pnlCoNLLOutput = new javax.swing.JPanel(); jScrollPane2 = new javax.swing.JScrollPane(); tblCoNLL = new javax.swing.JTable(new DefaultTableModel()); pnlInfo = new javax.swing.JPanel(); chkIsTree = new javax.swing.JCheckBox(); chkIsConnected = new javax.swing.JCheckBox(); chkIsProjective = new javax.swing.JCheckBox(); chkIsSingleHeaded = new javax.swing.JCheckBox(); lblRightParents = new javax.swing.JLabel(); txtRightParents = new javax.swing.JTextField(); txtRightArcs = new javax.swing.JTextField(); lblRightArcs = new javax.swing.JLabel(); txtProportion = new javax.swing.JTextField(); lblProportion = new javax.swing.JLabel(); lblNumbSenteces = new javax.swing.JLabel(); txtNumbSenteces = new javax.swing.JTextField(); lblTotalProportion = new javax.swing.JLabel(); txtTotalProportion = new javax.swing.JTextField(); btnMarkRPs = new javax.swing.JButton(); pnlLengthDistribution = new javax.swing.JPanel(); pnlNavigation = new javax.swing.JPanel(); btnPrev = new javax.swing.JButton(); sliderSentences = new javax.swing.JSlider(); btnNext = new javax.swing.JButton(); lblCurrentTotal = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jPanel8 = new javax.swing.JPanel(); addComponentListener(new java.awt.event.ComponentAdapter() { public void componentResized(java.awt.event.ComponentEvent evt) { ReadingPanel_Resized(evt); } }); pnlParameter.setBorder(javax.swing.BorderFactory.createTitledBorder("Parameter")); lblInputFile.setText("Input File:"); txtInputFile.setEditable(false); btnBrowseInputFile.setText("..."); btnBrowseInputFile.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnBrowseInputFile_Click(evt); } }); pnlDataFormat.setBorder(javax.swing.BorderFactory.createTitledBorder("Data Format")); buttonGroup1.add(rbPredefinedFormat); rbPredefinedFormat.setSelected(true); rbPredefinedFormat.setText("Predefined Format"); buttonGroup1.add(rbCustomFormat); rbCustomFormat.setText("Custom Format"); cboDataFormat.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "conll", "xml", "tab" })); cboDataFormat.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { cboDataFormat_StateChanged(evt); } }); txtFormatPath.setEditable(false); btnBrowseDataFormat.setText("..."); javax.swing.GroupLayout pnlDataFormatLayout = new javax.swing.GroupLayout(pnlDataFormat); pnlDataFormat.setLayout(pnlDataFormatLayout); pnlDataFormatLayout.setHorizontalGroup( pnlDataFormatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlDataFormatLayout.createSequentialGroup() .addGap(20, 20, 20) .addGroup(pnlDataFormatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(rbPredefinedFormat) .addComponent(rbCustomFormat)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(pnlDataFormatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlDataFormatLayout.createSequentialGroup() .addComponent(txtFormatPath) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnBrowseDataFormat, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(pnlDataFormatLayout.createSequentialGroup() .addComponent(cboDataFormat, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 310, Short.MAX_VALUE))) .addContainerGap()) ); pnlDataFormatLayout.setVerticalGroup( pnlDataFormatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlDataFormatLayout.createSequentialGroup() .addContainerGap() .addGroup(pnlDataFormatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(rbPredefinedFormat) .addComponent(cboDataFormat, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(pnlDataFormatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(rbCustomFormat) .addComponent(txtFormatPath, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(btnBrowseDataFormat)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); lblCharSet.setText("Char Set:"); cboCharSet.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "UTF-8" })); javax.swing.GroupLayout pnlAdvancedParameterLayout = new javax.swing.GroupLayout(pnlAdvancedParameter); pnlAdvancedParameter.setLayout(pnlAdvancedParameterLayout); pnlAdvancedParameterLayout.setHorizontalGroup( pnlAdvancedParameterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(pnlDataFormat, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(pnlAdvancedParameterLayout.createSequentialGroup() .addComponent(lblCharSet) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(cboCharSet, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, Short.MAX_VALUE)) ); pnlAdvancedParameterLayout.setVerticalGroup( pnlAdvancedParameterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlAdvancedParameterLayout.createSequentialGroup() .addComponent(pnlDataFormat, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(pnlAdvancedParameterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblCharSet) .addComponent(cboCharSet, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(0, 10, Short.MAX_VALUE)) ); btnReadAll.setText("Read All"); btnReadAll.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnReadAll_Click(evt); } }); pnlMore.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(240, 240, 240))); lblMore.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N lblMore.setForeground(new java.awt.Color(153, 153, 153)); lblMore.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ir/ac/iust/nlp/dependencyparser/evaluation/directional_down.png"))); // NOI18N lblMore.setText(" More "); lblMore.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { lblMore_mouseClick(evt); } public void mouseEntered(java.awt.event.MouseEvent evt) { lblMorepnlMore_mouseEnter(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { lblMorepnlMore_mouseExit(evt); } }); lblLess.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N lblLess.setForeground(new java.awt.Color(153, 153, 153)); lblLess.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ir/ac/iust/nlp/dependencyparser/evaluation/directional_up.png"))); // NOI18N lblLess.setText(" Less"); lblLess.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { lblLess_mouseClick(evt); } public void mouseEntered(java.awt.event.MouseEvent evt) { lblLesspnlMore_mouseEnter(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { lblLesspnlMore_mouseExit(evt); } }); javax.swing.GroupLayout pnlMoreLayout = new javax.swing.GroupLayout(pnlMore); pnlMore.setLayout(pnlMoreLayout); pnlMoreLayout.setHorizontalGroup( pnlMoreLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlMoreLayout.createSequentialGroup() .addGap(8, 8, 8) .addComponent(lblMore, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(lblLess) .addContainerGap()) ); pnlMoreLayout.setVerticalGroup( pnlMoreLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlMoreLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblLess, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(lblMore, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) ); javax.swing.GroupLayout pnlParameterLayout = new javax.swing.GroupLayout(pnlParameter); pnlParameter.setLayout(pnlParameterLayout); pnlParameterLayout.setHorizontalGroup( pnlParameterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlParameterLayout.createSequentialGroup() .addContainerGap() .addGroup(pnlParameterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(pnlAdvancedParameter, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(pnlParameterLayout.createSequentialGroup() .addComponent(lblInputFile) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(txtInputFile) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnBrowseInputFile, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(pnlParameterLayout.createSequentialGroup() .addComponent(pnlMore, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btnReadAll))) .addContainerGap()) ); pnlParameterLayout.setVerticalGroup( pnlParameterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlParameterLayout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(pnlParameterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblInputFile) .addComponent(txtInputFile, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(btnBrowseInputFile)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlParameterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(btnReadAll) .addComponent(pnlMore, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlAdvancedParameter, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) ); lblIncomingArc.setText("[I:H] : Incoming Arc - Head"); lblOutgoingArc.setText("[O:list] : Outgoing Arc - Child(s)"); jScrollPane1.setEnabled(false); txtPlainOutput.setColumns(20); txtPlainOutput.setRows(5); txtPlainOutput.setEnabled(false); jScrollPane1.setViewportView(txtPlainOutput); javax.swing.GroupLayout pnlPlainOutputLayout = new javax.swing.GroupLayout(pnlPlainOutput); pnlPlainOutput.setLayout(pnlPlainOutputLayout); pnlPlainOutputLayout.setHorizontalGroup( pnlPlainOutputLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlPlainOutputLayout.createSequentialGroup() .addContainerGap() .addGroup(pnlPlainOutputLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlPlainOutputLayout.createSequentialGroup() .addComponent(lblIncomingArc) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 318, Short.MAX_VALUE) .addComponent(lblOutgoingArc)) .addComponent(jScrollPane1)) .addContainerGap()) ); pnlPlainOutputLayout.setVerticalGroup( pnlPlainOutputLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlPlainOutputLayout.createSequentialGroup() .addContainerGap() .addGroup(pnlPlainOutputLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblIncomingArc) .addComponent(lblOutgoingArc)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 59, Short.MAX_VALUE) .addContainerGap()) ); tabDependencyInfo.addTab("Output", pnlPlainOutput); javax.swing.GroupLayout pnlDTLayout = new javax.swing.GroupLayout(pnlDT); pnlDT.setLayout(pnlDTLayout); pnlDTLayout.setHorizontalGroup( pnlDTLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 600, Short.MAX_VALUE) ); pnlDTLayout.setVerticalGroup( pnlDTLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 53, Short.MAX_VALUE) ); lblViewMode.setText("View Mode"); cboViewMode.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Inline Zoom", "Hierarchical Zoom", "NetGraph Zoom", "Inline Scroll" })); cboViewMode.setPreferredSize(new java.awt.Dimension(110, 20)); cboViewMode.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { cboViewMode_ValueChanged(evt); } }); javax.swing.GroupLayout pnlTreeLayout = new javax.swing.GroupLayout(pnlTree); pnlTree.setLayout(pnlTreeLayout); pnlTreeLayout.setHorizontalGroup( pnlTreeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlTreeLayout.createSequentialGroup() .addContainerGap() .addGroup(pnlTreeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(pnlDT, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(pnlTreeLayout.createSequentialGroup() .addComponent(lblViewMode) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(cboViewMode, javax.swing.GroupLayout.PREFERRED_SIZE, 129, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 410, Short.MAX_VALUE))) .addContainerGap()) ); pnlTreeLayout.setVerticalGroup( pnlTreeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlTreeLayout.createSequentialGroup() .addContainerGap() .addGroup(pnlTreeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblViewMode) .addComponent(cboViewMode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlDT, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addContainerGap()) ); tabDependencyInfo.addTab("Tree", pnlTree); tblCoNLL.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { }, new String [] { "#", "Word Form", "Lemma", "POS Tag", "Feats", "Head", "Dependency Type" } ) { Class[] types = new Class [] { java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class }; boolean[] canEdit = new boolean [] { false, false, false, false, false, false, false }; public Class getColumnClass(int columnIndex) { return types [columnIndex]; } public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; } }); tblCoNLL.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF); tblCoNLL.getTableHeader().setReorderingAllowed(false); jScrollPane2.setViewportView(tblCoNLL); tblCoNLL.getColumnModel().getColumn(0).setMinWidth(30); tblCoNLL.getColumnModel().getColumn(0).setPreferredWidth(30); tblCoNLL.getColumnModel().getColumn(1).setPreferredWidth(150); tblCoNLL.getColumnModel().getColumn(2).setPreferredWidth(150); tblCoNLL.getColumnModel().getColumn(3).setMinWidth(50); tblCoNLL.getColumnModel().getColumn(3).setPreferredWidth(50); tblCoNLL.getColumnModel().getColumn(4).setPreferredWidth(250); tblCoNLL.getColumnModel().getColumn(5).setMinWidth(35); tblCoNLL.getColumnModel().getColumn(5).setPreferredWidth(35); tblCoNLL.getColumnModel().getColumn(6).setMinWidth(95); tblCoNLL.getColumnModel().getColumn(6).setPreferredWidth(95); javax.swing.GroupLayout pnlCoNLLOutputLayout = new javax.swing.GroupLayout(pnlCoNLLOutput); pnlCoNLLOutput.setLayout(pnlCoNLLOutputLayout); pnlCoNLLOutputLayout.setHorizontalGroup( pnlCoNLLOutputLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlCoNLLOutputLayout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 600, Short.MAX_VALUE) .addContainerGap()) ); pnlCoNLLOutputLayout.setVerticalGroup( pnlCoNLLOutputLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlCoNLLOutputLayout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 79, Short.MAX_VALUE) .addContainerGap()) ); tabDependencyInfo.addTab("Conll", pnlCoNLLOutput); chkIsTree.setText("Is Tree"); chkIsTree.setEnabled(false); chkIsConnected.setText("Is Connected"); chkIsConnected.setEnabled(false); chkIsProjective.setText("Is Projective"); chkIsProjective.setEnabled(false); chkIsSingleHeaded.setText("Is Single Headed"); chkIsSingleHeaded.setEnabled(false); lblRightParents.setText("Number of Right Parents:"); txtRightParents.setEditable(false); txtRightArcs.setEditable(false); lblRightArcs.setText("Number of Right Arcs:"); txtProportion.setEditable(false); lblProportion.setText("Proportion = RightParents / RightArcs:"); lblNumbSenteces.setText("Number of Senteces:"); txtNumbSenteces.setEditable(false); lblTotalProportion.setText("Proportions / # Senteces"); txtTotalProportion.setEditable(false); btnMarkRPs.setText("Mark Right Parents in Tree"); btnMarkRPs.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnMarkRPsActionPerformed(evt); } }); javax.swing.GroupLayout pnlInfoLayout = new javax.swing.GroupLayout(pnlInfo); pnlInfo.setLayout(pnlInfoLayout); pnlInfoLayout.setHorizontalGroup( pnlInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlInfoLayout.createSequentialGroup() .addGap(16, 16, 16) .addGroup(pnlInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlInfoLayout.createSequentialGroup() .addComponent(chkIsProjective) .addGap(0, 0, Short.MAX_VALUE)) .addGroup(pnlInfoLayout.createSequentialGroup() .addGroup(pnlInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(chkIsSingleHeaded) .addComponent(chkIsTree) .addComponent(chkIsConnected)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(pnlInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(lblRightArcs, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(lblRightParents, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(lblProportion)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(pnlInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(txtRightArcs) .addComponent(txtRightParents) .addComponent(txtProportion, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(pnlInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlInfoLayout.createSequentialGroup() .addGap(43, 43, 43) .addGroup(pnlInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(lblNumbSenteces) .addComponent(lblTotalProportion)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(txtNumbSenteces) .addComponent(txtTotalProportion, javax.swing.GroupLayout.DEFAULT_SIZE, 103, Short.MAX_VALUE))) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlInfoLayout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnMarkRPs))))) .addContainerGap()) ); pnlInfoLayout.setVerticalGroup( pnlInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlInfoLayout.createSequentialGroup() .addContainerGap() .addGroup(pnlInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(chkIsTree) .addComponent(lblRightParents) .addComponent(txtRightParents, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(lblNumbSenteces) .addComponent(txtNumbSenteces, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(pnlInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(chkIsConnected) .addComponent(txtRightArcs, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(lblRightArcs) .addComponent(lblTotalProportion) .addComponent(txtTotalProportion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(pnlInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(chkIsSingleHeaded) .addComponent(txtProportion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(lblProportion) .addComponent(btnMarkRPs)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(chkIsProjective) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); tabDependencyInfo.addTab("Information", pnlInfo); javax.swing.GroupLayout pnlLengthDistributionLayout = new javax.swing.GroupLayout(pnlLengthDistribution); pnlLengthDistribution.setLayout(pnlLengthDistributionLayout); pnlLengthDistributionLayout.setHorizontalGroup( pnlLengthDistributionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 620, Short.MAX_VALUE) ); pnlLengthDistributionLayout.setVerticalGroup( pnlLengthDistributionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 101, Short.MAX_VALUE) ); tabDependencyInfo.addTab("Length Distribution", pnlLengthDistribution); btnPrev.setText("Prev"); btnPrev.setEnabled(false); btnPrev.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnPrev_Click(evt); } }); sliderSentences.setMaximum(0); sliderSentences.setEnabled(false); sliderSentences.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { sliderSentences_StateChanged(evt); } }); btnNext.setText("Next"); btnNext.setEnabled(false); btnNext.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnNext_Click(evt); } }); lblCurrentTotal.setText("-/-"); javax.swing.GroupLayout pnlNavigationLayout = new javax.swing.GroupLayout(pnlNavigation); pnlNavigation.setLayout(pnlNavigationLayout); pnlNavigationLayout.setHorizontalGroup( pnlNavigationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlNavigationLayout.createSequentialGroup() .addContainerGap() .addComponent(btnPrev) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(sliderSentences, javax.swing.GroupLayout.DEFAULT_SIZE, 415, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnNext) .addGap(76, 76, 76) .addComponent(lblCurrentTotal) .addContainerGap()) ); pnlNavigationLayout.setVerticalGroup( pnlNavigationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlNavigationLayout.createSequentialGroup() .addGap(0, 2, Short.MAX_VALUE) .addGroup(pnlNavigationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(sliderSentences, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(btnPrev, javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(pnlNavigationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblCurrentTotal) .addComponent(btnNext)))) ); jLabel2.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N jLabel2.setText("Reading Corpus"); jPanel8.setBorder(javax.swing.BorderFactory.createEtchedBorder()); jPanel8.setPreferredSize(new java.awt.Dimension(380, 2)); javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8); jPanel8.setLayout(jPanel8Layout); jPanel8Layout.setHorizontalGroup( jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); jPanel8Layout.setVerticalGroup( jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(pnlNavigation, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(tabDependencyInfo, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) .addComponent(pnlParameter, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE, 625, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addComponent(jLabel2) .addGap(0, 0, Short.MAX_VALUE))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlParameter, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(tabDependencyInfo, javax.swing.GroupLayout.DEFAULT_SIZE, 129, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlNavigation, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) ); }// </editor-fold>//GEN-END:initComponents private void btnReadAll_Click(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnReadAll_Click try { if (isInit == false) { isInit = true; String input = txtInputFile.getText(); reader_writer.initRead(input, cboCharSet.getSelectedItem().toString()); graphs = reader_writer.readAll(); ComputeLenght(input);////////////// // just conll format !!!!!!!!!!!!!!!!!!!!! h1 = Hypothesis1.Run(input, false); String format = cboDataFormat.getSelectedItem().toString(); gui = new MaltTreeViewerGui( new String[] {txtInputFile.getText()}, format, new String[] {txtInputFile.getText()}, format); gui.setVisible(false); initTreeGui(); btnPrev.setEnabled(false); int size = graphs.size(); // gui.getSentenceCount() - 1 if (size > 1) { btnNext.setEnabled(true); } else { btnNext.setEnabled(false); } lblCurrentTotal.setText("1 / " + size); // gui.getCurrentSentence() sliderSentences.setMinimum(0); sliderSentences.setMaximum(size - 1); sliderSentences.setValue(0); sliderSentences.setEnabled(true); txtNumbSenteces.setText(String.valueOf(size)); txtTotalProportion.setText(String.format("%.2f", h1.getTotalProportion())); if (size == 1) { UpdateTree(0); } } } catch (MaltChainedException | MaltEvalException ex) { JOptionPane.showMessageDialog( null, ex.getMessage(), "Reading Error", JOptionPane.ERROR_MESSAGE); } finally { isInit = false; } }//GEN-LAST:event_btnReadAll_Click private void cboDataFormat_StateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cboDataFormat_StateChanged String path = dataFormatPath; if (rbPredefinedFormat.isSelected() == true) { switch (cboDataFormat.getSelectedIndex()) { // CoNLL X case 0: default: path += "conllx.xml"; break; //??????????? other format } } else { path = txtFormatPath.getText(); } try { reader_writer = new ReadWriteCoNLL(path); } catch (Exception ex) { JOptionPane.showMessageDialog( null, ex.getMessage(), "Data Format Error", JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_cboDataFormat_StateChanged private void btnBrowseInputFile_Click(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBrowseInputFile_Click txtInputFile.setText(showFileDialog(txtInputFile.getText(), false)); }//GEN-LAST:event_btnBrowseInputFile_Click private void cboViewMode_ValueChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cboViewMode_ValueChanged ChangeViewMode(); }//GEN-LAST:event_cboViewMode_ValueChanged private void ReadingPanel_Resized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_ReadingPanel_Resized ChangeViewMode(); }//GEN-LAST:event_ReadingPanel_Resized private void btnPrev_Click(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPrev_Click int val = sliderSentences.getValue(); int min = sliderSentences.getMinimum(); if (val > min) { sliderSentences.setValue(val - 1); } }//GEN-LAST:event_btnPrev_Click private void sliderSentences_StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_sliderSentences_StateChanged try { UpdateTree(sliderSentences.getValue()); } catch (Exception ex) { } }//GEN-LAST:event_sliderSentences_StateChanged private void btnNext_Click(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNext_Click int val = sliderSentences.getValue(); int max = sliderSentences.getMaximum(); if (val < max) { sliderSentences.setValue(val + 1); } }//GEN-LAST:event_btnNext_Click private void btnMarkRPsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnMarkRPsActionPerformed boldRightParents(); tabDependencyInfo.getModel().setSelectedIndex(1); }//GEN-LAST:event_btnMarkRPsActionPerformed private void lblMore_mouseClick(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lblMore_mouseClick lblMore.setVisible(false); lblLess.setVisible(true); pnlAdvancedParameter.setVisible(true); }//GEN-LAST:event_lblMore_mouseClick private void lblMorepnlMore_mouseEnter(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lblMorepnlMore_mouseEnter pnlMore.setBackground(new Color(235, 232, 232)); pnlMore.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, false)); }//GEN-LAST:event_lblMorepnlMore_mouseEnter private void lblMorepnlMore_mouseExit(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lblMorepnlMore_mouseExit pnlMore.setBackground(new Color(240, 240, 240)); pnlMore.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(240, 240, 240), 1, false)); }//GEN-LAST:event_lblMorepnlMore_mouseExit private void lblLess_mouseClick(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lblLess_mouseClick pnlAdvancedParameter.setVisible(false); lblLess.setVisible(false); lblMore.setVisible(true); }//GEN-LAST:event_lblLess_mouseClick private void lblLesspnlMore_mouseEnter(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lblLesspnlMore_mouseEnter pnlMore.setBackground(new Color(235, 232, 232)); pnlMore.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, false)); }//GEN-LAST:event_lblLesspnlMore_mouseEnter private void lblLesspnlMore_mouseExit(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lblLesspnlMore_mouseExit pnlMore.setBackground(new Color(240, 240, 240)); pnlMore.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(240, 240, 240), 1, false)); }//GEN-LAST:event_lblLesspnlMore_mouseExit private void ChangeViewMode() { if (gui != null) { gui.changeViewMode(cboViewMode.getSelectedIndex() + 1); } } @Override public boolean canSave() { return (tabDependencyInfo.getSelectedIndex() != 3); } public void ComputeLenght(String filePath) { try{ int sum = 0; List<Integer> lens = new LinkedList<>(); BufferedReader in = new BufferedReader(new FileReader(filePath)); String line; int maxLen = 0; int curLen = 0; while( (line = in.readLine()) != null) { if (line.length() != 0) { sum++; curLen++; } else { lens.add(curLen); if (maxLen < curLen) { maxLen = curLen; } curLen = 0; } } float[] lengths = new float[maxLen]; for (int i =0 ; i<lens.size(); i++){ lengths[lens.get(i) - 1]++; } DrawPlot(maxLen, lengths); } catch(Exception ex){ System.out.println("error:" + ex.getMessage()); } } public void DrawPlot(int maxLen, float[] lengths) { //Configure object properties Object2DProperties object2DProps = new Object2DProperties(); //Configure chart properties Chart2DProperties chart2DProps = new Chart2DProperties(); chart2DProps.setChartDataLabelsPrecision (1); //Configure legend properties LegendProperties legendProps = new LegendProperties(); legendProps.setLegendExistence(false); //Configure graph chart properties GraphChart2DProperties graphChart2DProps = new GraphChart2DProperties(); String[] labelsAxisLabels = new String[maxLen]; for (int i=0; i<maxLen; i++) { labelsAxisLabels[i] = String.valueOf(i+1); } graphChart2DProps.setLabelsAxisLabelsTexts (labelsAxisLabels); graphChart2DProps.setLabelsAxisTitleText ("Length of Sentence"); graphChart2DProps.setNumbersAxisTitleText ("Number of Sentence"); graphChart2DProps.setLabelsAxisTicksAlignment (GraphChart2DProperties.CENTERED); //Configure graph properties GraphProperties graphProps = new GraphProperties(); graphProps.setGraphBarsExistence (false); graphProps.setGraphLinesExistence (true); graphProps.setGraphLinesThicknessModel (2); graphProps.setGraphLinesWithinCategoryOverlapRatio (1f); graphProps.setGraphDotsExistence (true); graphProps.setGraphDotsThicknessModel (8); graphProps.setGraphDotsWithinCategoryOverlapRatio (1f); graphProps.setGraphAllowComponentAlignment (true); //Configure dataset Dataset dataset = new Dataset (1, maxLen, 1); for (int i = 0; i < dataset.getNumSets(); ++i) { for (int j = 0; j < dataset.getNumCats(); ++j) { for (int k = 0; k < dataset.getNumItems(); ++k) { dataset.set (i, j, k, lengths[j]); } } } //Configure graph component colors MultiColorsProperties multiColorsProps = new MultiColorsProperties(); //Configure chart LBChart2D chart2D = new LBChart2D(); chart2D.setObject2DProperties (object2DProps); chart2D.setChart2DProperties (chart2DProps); chart2D.setLegendProperties (legendProps); chart2D.setGraphChart2DProperties (graphChart2DProps); chart2D.addGraphProperties (graphProps); chart2D.addDataset (dataset); chart2D.addMultiColorsProperties (multiColorsProps); //Optional validation: Prints debug messages if invalid only. if (!chart2D.validate (false)) { chart2D.validate (true); } pnlLengthDistribution.removeAll(); pnlLengthDistribution.setLayout(new GridLayout()); pnlLengthDistribution.add(chart2D); pnlLengthDistribution.revalidate(); } @Override public void save() { ExampleFileFilter filter; switch (tabDependencyInfo.getSelectedIndex()) { case 0: // Output filter = new ExampleFileFilter("txt", "Text Files"); saveText(filter, "Reading_log.txt", txtPlainOutput.getText()); break; case 1: // Tree saveTree(0); break; case 2: //CoNLL if (gui != null) { StringBuilder body = new StringBuilder(); TreeViewerSentence sentence = gui.getSentenceList().getSentence(gui.getCurrentSentence()); for(int i = 1; i<sentence.size(); i++){ MaltWord word = sentence.getWord(i); body.append(String.format("%s %s %s %s %s _ %s %s _ _\n", String.valueOf(i), word.getForm(), word.getLemma(), word.getPostag(), word.getFeats(), String.valueOf(word.getHead()), word.getDeprel())); } filter = new ExampleFileFilter("conll", "CoNLL Files"); saveText(filter, "dependency_graph.conll", body.toString()); } break; case 4: if (pnlLengthDistribution.getComponentCount() > 0) { LBChart2D chart2D = (LBChart2D)pnlLengthDistribution.getComponent(0); BufferedImage lbImage = chart2D.getImage(); try { ExampleFileFilter pngFilter = new ExampleFileFilter("png", "Portable Network Graphics Image Files"); ExampleFileFilter bmpFilter = new ExampleFileFilter("bmp", "Bitmap Image Files"); ExampleFileFilter jpgFilter = new ExampleFileFilter("jpg", "JPEG Compressed Image Files"); ExampleFileFilter gifFilter = new ExampleFileFilter("gif", "GIF Image Files"); //ExampleFileFilter wbmpFilter = new ExampleFileFilter("wbmp", "Wireless Bitmap Image Files"); ExampleFileFilter[] ffs = new ExampleFileFilter[] {pngFilter, bmpFilter, jpgFilter, gifFilter}; JFileChooser fc = showFileDialogWithFilters(".", true, ffs); if (fc != null) { String ext = ((ExampleFileFilter)fc.getFileFilter()).getFirstFilter(); ImageIO.write(lbImage, ext, new File( fc.getSelectedFile().getAbsoluteFile() + File.separator + "length_distribution." + ext)); } } catch(Exception ex) {} } break; } } @Override public void saveAs() { save(); } @Override public void threadFinished() { } private void UpdateTree(int index) throws MaltChainedException { txtRightParents.setText(String.valueOf(h1.getRightParentsCount(index))); txtRightParents.setToolTipText(h1.getRightParents(index)); txtRightArcs.setText(String.valueOf(h1.getRightArcsCount(index))); txtRightArcs.setToolTipText(h1.getRightArcs(index)); txtProportion.setText(String.valueOf(String.format("%.2f", h1.getProportion(index)))); gui.getCurrentSentenceListComponent().setSelectedSentence(index); gui.changeViewMode(cboViewMode.getSelectedIndex() + 1); TreeViewer tv = gui.getMediators().get(0); javax.swing.JPanel pnl = tv.getSplitPane(); pnlDT.removeAll(); pnlDT.setLayout(new GridLayout()); pnlDT.add(pnl); pnlDT.revalidate(); DependencyGraph dg = graphs.get(index); lblCurrentTotal.setText((index + 1) + " / " + graphs.size()); if (index == sliderSentences.getMaximum()) { btnNext.setEnabled(false); } else { btnNext.setEnabled(true); } if (index == sliderSentences.getMinimum()) { btnPrev.setEnabled(false); } else { btnPrev.setEnabled(true); } // Plain Output txtPlainOutput.setText(dg.toString()); // Conll Output DefaultTableModel model = (DefaultTableModel) tblCoNLL.getModel(); model.setRowCount(0); TreeViewerSentence sentence = gui.getSentenceList().getSentence(gui.getCurrentSentence()); for(int i = 1; i<dg.nDependencyNode(); i++){ MaltWord word = sentence.getWord(i); model.addRow(new String[]{ String.valueOf(i), word.getForm(), word.getLemma(), word.getPostag(), word.getFeats(), String.valueOf(word.getHead()), word.getDeprel() }); } // Information Output DependencyStructure pdg = (DependencyStructure)dg; chkIsTree.getModel().setSelected(pdg.isTree()); chkIsConnected.getModel().setSelected(pdg.isConnected()); chkIsSingleHeaded.getModel().setSelected(pdg.isSingleHeaded()); chkIsProjective.getModel().setSelected(pdg.isProjective()); } private void boldRightParents() { searchTree(sliderSentences.getValue(), SearchIn.Gold, SearchBy.ArcDirection, "left", EmphasizeSearchHits.ForBoth); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnBrowseDataFormat; private javax.swing.JButton btnBrowseInputFile; private javax.swing.JButton btnMarkRPs; private javax.swing.JButton btnNext; private javax.swing.JButton btnPrev; private javax.swing.JToggleButton btnReadAll; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JComboBox cboCharSet; private javax.swing.JComboBox cboDataFormat; private javax.swing.JComboBox cboViewMode; private javax.swing.JCheckBox chkIsConnected; private javax.swing.JCheckBox chkIsProjective; private javax.swing.JCheckBox chkIsSingleHeaded; private javax.swing.JCheckBox chkIsTree; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel8; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JLabel lblCharSet; private javax.swing.JLabel lblCurrentTotal; private javax.swing.JLabel lblIncomingArc; private javax.swing.JLabel lblInputFile; private javax.swing.JLabel lblLess; private javax.swing.JLabel lblMore; private javax.swing.JLabel lblNumbSenteces; private javax.swing.JLabel lblOutgoingArc; private javax.swing.JLabel lblProportion; private javax.swing.JLabel lblRightArcs; private javax.swing.JLabel lblRightParents; private javax.swing.JLabel lblTotalProportion; private javax.swing.JLabel lblViewMode; private javax.swing.JPanel pnlAdvancedParameter; private javax.swing.JPanel pnlCoNLLOutput; private javax.swing.JPanel pnlDT; private javax.swing.JPanel pnlDataFormat; private javax.swing.JPanel pnlInfo; private javax.swing.JPanel pnlLengthDistribution; private javax.swing.JPanel pnlMore; private javax.swing.JPanel pnlNavigation; private javax.swing.JPanel pnlParameter; private javax.swing.JPanel pnlPlainOutput; private javax.swing.JPanel pnlTree; private javax.swing.JRadioButton rbCustomFormat; private javax.swing.JRadioButton rbPredefinedFormat; private javax.swing.JSlider sliderSentences; private javax.swing.JTabbedPane tabDependencyInfo; private javax.swing.JTable tblCoNLL; private javax.swing.JTextField txtFormatPath; private javax.swing.JTextField txtInputFile; private javax.swing.JTextField txtNumbSenteces; private javax.swing.JTextArea txtPlainOutput; private javax.swing.JTextField txtProportion; private javax.swing.JTextField txtRightArcs; private javax.swing.JTextField txtRightParents; private javax.swing.JTextField txtTotalProportion; // End of variables declaration//GEN-END:variables }