6 package de.uni_hamburg.corpora.swing;
15 import java.awt.BorderLayout;
16 import java.awt.Color;
17 import java.awt.Desktop;
19 import java.io.FileFilter;
20 import java.io.FileOutputStream;
21 import java.io.FilenameFilter;
22 import java.io.IOException;
23 import java.net.MalformedURLException;
25 import java.net.URISyntaxException;
27 import java.nio.file.Paths;
28 import java.util.ArrayList;
29 import java.util.Arrays;
30 import java.util.Collection;
31 import java.util.List;
32 import java.util.Vector;
33 import java.util.logging.Level;
34 import java.util.logging.Logger;
35 import javax.swing.DefaultListModel;
36 import javax.swing.ImageIcon;
37 import javax.swing.JDialog;
38 import javax.swing.JFileChooser;
39 import javax.swing.JOptionPane;
40 import javax.swing.JScrollPane;
41 import javax.swing.JTextPane;
42 import javax.swing.SwingUtilities;
43 import javax.swing.WindowConstants;
44 import javax.swing.border.LineBorder;
45 import javax.swing.text.BadLocationException;
46 import javax.swing.text.Style;
47 import javax.swing.text.StyleConstants;
48 import javax.swing.text.StyledDocument;
49 import org.exmaralda.folker.utilities.HTMLDisplayDialog;
50 import org.exmaralda.partitureditor.jexmaralda.JexmaraldaException;
61 import org.jdom.Document;
62 import org.jdom.JDOMException;
63 import org.jdom.output.Format;
64 import org.jdom.output.XMLOutputter;
65 import org.xml.sax.SAXException;
74 DefaultListModel listModel =
new DefaultListModel();
77 LineBorder dragBorder =
new LineBorder(Color.BLUE, 3,
true);
79 ImageIcon inactiveIcon;
84 Collection<CorpusData> allFiles =
new ArrayList();
92 inactiveIcon =
new javax.swing.ImageIcon(getClass().getResource(
"/images/droptarget.png"));
93 activeIcon =
new javax.swing.ImageIcon(getClass().getResource(
"/images/droptarget_active.png"));
94 mainPanel.add(dropPanel, java.awt.BorderLayout.NORTH);
95 teiFilesList.setModel(listModel);
101 public void filesDropped(java.io.File[] files) {
103 handleFileDrop(files);
113 @SuppressWarnings(
"unchecked")
115 private void initComponents() {
117 panel1 =
new java.awt.Panel();
118 backGroundPanel =
new java.awt.Panel();
119 mainPanel =
new javax.swing.JPanel();
120 jPanel1 =
new javax.swing.JPanel();
121 messageAndProgressPanel =
new javax.swing.JPanel();
122 messageScrollPane =
new javax.swing.JScrollPane();
123 messagesTextArea =
new javax.swing.JTextArea();
124 listScrollPane =
new javax.swing.JScrollPane();
125 teiFilesList =
new javax.swing.JList();
126 operationsPanel =
new javax.swing.JPanel();
127 showXMLButton =
new javax.swing.JButton();
128 showHTMLButton =
new javax.swing.JButton();
129 lowerPanel =
new javax.swing.JPanel();
130 jPanel7 =
new javax.swing.JPanel();
131 sidePanel =
new javax.swing.JPanel();
132 corpusServices =
new javax.swing.JPanel();
133 jLabel3 =
new javax.swing.JLabel();
134 settingsPanel =
new javax.swing.JPanel();
135 corpusFunction =
new javax.swing.JPanel();
136 jLabel1 =
new javax.swing.JLabel();
137 parseMethodComboBox =
new javax.swing.JComboBox();
138 jLabel2 =
new javax.swing.JLabel();
139 outputPanel =
new javax.swing.JPanel();
140 output =
new javax.swing.JLabel();
141 sameDirectory =
new javax.swing.JRadioButton();
142 otherDirectory =
new javax.swing.JRadioButton();
143 otherDirectoryTextField =
new javax.swing.JTextField();
144 browseButton =
new javax.swing.JButton();
145 jLabel4 =
new javax.swing.JLabel();
146 jLabel5 =
new javax.swing.JLabel();
147 jTextField2 =
new javax.swing.JTextField();
148 jLabel6 =
new javax.swing.JLabel();
149 jTextField3 =
new javax.swing.JTextField();
150 jComboBox1 =
new javax.swing.JComboBox<>();
151 helpButton =
new javax.swing.JButton();
152 progressBar =
new javax.swing.JProgressBar();
153 dropletToggleButton =
new javax.swing.JToggleButton();
155 javax.swing.GroupLayout panel1Layout =
new javax.swing.GroupLayout(panel1);
156 panel1.setLayout(panel1Layout);
157 panel1Layout.setHorizontalGroup(
158 panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
159 .addGap(0, 100, Short.MAX_VALUE)
161 panel1Layout.setVerticalGroup(
162 panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
163 .addGap(0, 100, Short.MAX_VALUE)
166 setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
167 setBackground(
new java.awt.Color(15, 155, 155));
169 backGroundPanel.setBackground(
new java.awt.Color(15, 155, 155));
171 mainPanel.setBackground(
new java.awt.Color(15, 155, 155));
172 mainPanel.setLayout(
new java.awt.BorderLayout());
174 jPanel1.setBackground(
new java.awt.Color(15, 155, 155));
176 messageAndProgressPanel.setBackground(
new java.awt.Color(15, 155, 155));
177 messageAndProgressPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createCompoundBorder(),
" Messages", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION,
new java.awt.Font(
"Segoe UI", 1, 14)));
178 messageAndProgressPanel.setForeground(
new java.awt.Color(255, 255, 255));
179 messageAndProgressPanel.setToolTipText(
"");
180 messageAndProgressPanel.setFont(
new java.awt.Font(
"Arial", 0, 12));
182 messageScrollPane.setBackground(
new java.awt.Color(15, 155, 155));
183 messageScrollPane.setBorder(null);
184 messageScrollPane.setViewportBorder(null);
186 messagesTextArea.setBackground(
new java.awt.Color(172, 221, 221));
187 messagesTextArea.setColumns(20);
188 messagesTextArea.setFont(
new java.awt.Font(
"Monospaced", 0, 12));
189 messagesTextArea.setForeground(
new java.awt.Color(255, 255, 255));
190 messagesTextArea.setRows(5);
191 messagesTextArea.setBorder(null);
192 messagesTextArea.setPreferredSize(
new java.awt.Dimension(140, 75));
193 messagesTextArea.setRequestFocusEnabled(
false);
194 messageScrollPane.setViewportView(messagesTextArea);
196 javax.swing.GroupLayout messageAndProgressPanelLayout =
new javax.swing.GroupLayout(messageAndProgressPanel);
197 messageAndProgressPanel.setLayout(messageAndProgressPanelLayout);
198 messageAndProgressPanelLayout.setHorizontalGroup(
199 messageAndProgressPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
200 .addGroup(messageAndProgressPanelLayout.createSequentialGroup()
202 .addComponent(messageScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 299, javax.swing.GroupLayout.PREFERRED_SIZE)
203 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
205 messageAndProgressPanelLayout.setVerticalGroup(
206 messageAndProgressPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
207 .addComponent(messageScrollPane, javax.swing.GroupLayout.Alignment.TRAILING)
210 listScrollPane.setBackground(
new java.awt.Color(15, 155, 155));
211 listScrollPane.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createCompoundBorder(),
"Converted files", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION,
new java.awt.Font(
"Segoe UI", 1, 14)));
212 listScrollPane.setForeground(
new java.awt.Color(255, 255, 255));
214 teiFilesList.setBackground(
new java.awt.Color(172, 221, 221));
215 teiFilesList.setForeground(
new java.awt.Color(255, 255, 255));
216 teiFilesList.addListSelectionListener(
new javax.swing.event.ListSelectionListener() {
217 public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
218 teiFilesListValueChanged(evt);
221 listScrollPane.setViewportView(teiFilesList);
223 operationsPanel.setBackground(
new java.awt.Color(15, 155, 155));
224 operationsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createCompoundBorder(),
"Operations", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION,
new java.awt.Font(
"Segoe UI", 1, 14)));
225 operationsPanel.setForeground(
new java.awt.Color(255, 255, 255));
227 showXMLButton.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/images/icons/code.png")));
228 showXMLButton.setToolTipText(
"Show XML");
229 showXMLButton.setEnabled(
false);
230 showXMLButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
231 showXMLButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
232 showXMLButton.addActionListener(
new java.awt.event.ActionListener() {
233 public void actionPerformed(java.awt.event.ActionEvent evt) {
234 showXMLButtonActionPerformed(evt);
237 operationsPanel.add(showXMLButton);
239 showHTMLButton.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/images/icons/earth.png")));
240 showHTMLButton.setToolTipText(
"Show HTML in Browser");
241 showHTMLButton.setEnabled(
false);
242 showHTMLButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
243 showHTMLButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
244 showHTMLButton.addActionListener(
new java.awt.event.ActionListener() {
245 public void actionPerformed(java.awt.event.ActionEvent evt) {
246 showHTMLButtonActionPerformed(evt);
249 operationsPanel.add(showHTMLButton);
251 javax.swing.GroupLayout jPanel1Layout =
new javax.swing.GroupLayout(jPanel1);
252 jPanel1.setLayout(jPanel1Layout);
253 jPanel1Layout.setHorizontalGroup(
254 jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
255 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
257 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
258 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
259 .addComponent(messageAndProgressPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
260 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
261 .addComponent(listScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 316, javax.swing.GroupLayout.PREFERRED_SIZE)
263 .addComponent(operationsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 643, javax.swing.GroupLayout.PREFERRED_SIZE))
266 jPanel1Layout.setVerticalGroup(
267 jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
268 .addGroup(jPanel1Layout.createSequentialGroup()
269 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,
false)
270 .addComponent(messageAndProgressPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
271 .addComponent(listScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 232, javax.swing.GroupLayout.PREFERRED_SIZE))
272 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
273 .addComponent(operationsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
277 mainPanel.add(jPanel1, java.awt.BorderLayout.CENTER);
279 lowerPanel.setBackground(
new java.awt.Color(15, 155, 155));
280 lowerPanel.setLayout(
new java.awt.BorderLayout());
282 jPanel7.setBackground(
new java.awt.Color(15, 155, 155));
283 jPanel7.setLayout(
new java.awt.BorderLayout());
284 lowerPanel.add(jPanel7, java.awt.BorderLayout.SOUTH);
286 sidePanel.setBackground(
new java.awt.Color(15, 155, 155));
287 sidePanel.setBorder(null);
289 corpusServices.setBackground(
new java.awt.Color(15, 155, 155));
291 jLabel3.setBackground(
new java.awt.Color(15, 155, 155));
292 jLabel3.setFont(
new java.awt.Font(
"Segoe UI", 1, 18));
293 jLabel3.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/images/icons/chart-bars.png")));
294 jLabel3.setText(
"corpus services");
296 javax.swing.GroupLayout corpusServicesLayout =
new javax.swing.GroupLayout(corpusServices);
297 corpusServices.setLayout(corpusServicesLayout);
298 corpusServicesLayout.setHorizontalGroup(
299 corpusServicesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
300 .addGroup(corpusServicesLayout.createSequentialGroup()
302 .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 180, Short.MAX_VALUE)
305 corpusServicesLayout.setVerticalGroup(
306 corpusServicesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
307 .addGroup(corpusServicesLayout.createSequentialGroup()
309 .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
310 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
313 javax.swing.GroupLayout sidePanelLayout =
new javax.swing.GroupLayout(sidePanel);
314 sidePanel.setLayout(sidePanelLayout);
315 sidePanelLayout.setHorizontalGroup(
316 sidePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
317 .addGroup(sidePanelLayout.createSequentialGroup()
319 .addComponent(corpusServices, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
321 sidePanelLayout.setVerticalGroup(
322 sidePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
323 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, sidePanelLayout.createSequentialGroup()
325 .addComponent(corpusServices, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
326 .addGap(420, 420, 420))
329 settingsPanel.setBackground(
new java.awt.Color(15, 155, 155));
330 settingsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createCompoundBorder(),
"Settings", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION,
new java.awt.Font(
"Segoe UI", 1, 14)));
331 settingsPanel.setForeground(
new java.awt.Color(255, 255, 255));
332 settingsPanel.setToolTipText(
"");
333 settingsPanel.setCursor(
new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
334 settingsPanel.setFocusable(
false);
335 settingsPanel.setFont(
new java.awt.Font(
"sansserif", 0, 18));
336 settingsPanel.setMaximumSize(
new java.awt.Dimension(150, 300));
337 settingsPanel.setMinimumSize(
new java.awt.Dimension(120, 200));
338 settingsPanel.setName(
"");
340 corpusFunction.setBackground(
new java.awt.Color(15, 155, 155));
341 corpusFunction.setAlignmentX(0.0F);
343 jLabel1.setBackground(
new java.awt.Color(15, 155, 155));
344 jLabel1.setFont(
new java.awt.Font(
"Segoe UI", 0, 14));
345 jLabel1.setForeground(
new java.awt.Color(255, 255, 255));
346 jLabel1.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/images/icons/magic-wand.png")));
347 jLabel1.setText(
"Corpus function(s)");
348 jLabel1.setToolTipText(
"Choose the corpus function(s) you want to use.");
350 parseMethodComboBox.setBackground(
new java.awt.Color(15, 155, 155));
351 parseMethodComboBox.setFont(
new java.awt.Font(
"Segoe UI", 0, 12));
352 parseMethodComboBox.setForeground(
new java.awt.Color(255, 255, 255));
353 parseMethodComboBox.setModel(
new javax.swing.DefaultComboBoxModel(functions.toArray()));
354 parseMethodComboBox.setOpaque(
true);
355 parseMethodComboBox.addActionListener(
new java.awt.event.ActionListener() {
356 public void actionPerformed(java.awt.event.ActionEvent evt) {
357 parseMethodComboBoxActionPerformed(evt);
361 jLabel2.setBackground(
new java.awt.Color(15, 155, 155));
362 jLabel2.setFont(
new java.awt.Font(
"Segoe UI", 0, 14));
363 jLabel2.setForeground(
new java.awt.Color(255, 255, 255));
364 jLabel2.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/images/icons/cog.png")));
365 jLabel2.setText(
"Parameters");
366 jLabel2.setToolTipText(
"Choose the parameters you want to use.");
368 javax.swing.GroupLayout corpusFunctionLayout =
new javax.swing.GroupLayout(corpusFunction);
369 corpusFunction.setLayout(corpusFunctionLayout);
370 corpusFunctionLayout.setHorizontalGroup(
371 corpusFunctionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
372 .addGroup(corpusFunctionLayout.createSequentialGroup()
374 .addGroup(corpusFunctionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
375 .addComponent(jLabel1)
376 .addComponent(parseMethodComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE)
377 .addComponent(jLabel2))
378 .addContainerGap(12, Short.MAX_VALUE))
380 corpusFunctionLayout.setVerticalGroup(
381 corpusFunctionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
382 .addGroup(corpusFunctionLayout.createSequentialGroup()
384 .addComponent(jLabel1)
385 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
386 .addComponent(parseMethodComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
387 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
388 .addComponent(jLabel2)
389 .addContainerGap(17, Short.MAX_VALUE))
392 outputPanel.setBackground(
new java.awt.Color(15, 155, 155));
394 output.setBackground(
new java.awt.Color(15, 155, 155));
395 output.setFont(
new java.awt.Font(
"Segoe UI", 0, 14));
396 output.setForeground(
new java.awt.Color(255, 255, 255));
397 output.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/images/icons/enter.png")));
398 output.setText(
"Write output to");
400 sameDirectory.setBackground(
new java.awt.Color(15, 155, 155));
401 sameDirectory.setFont(
new java.awt.Font(
"Segoe UI", 0, 12));
402 sameDirectory.setForeground(
new java.awt.Color(255, 255, 255));
403 sameDirectory.setSelected(
true);
404 sameDirectory.setText(
"the same directory");
405 sameDirectory.setOpaque(
true);
406 sameDirectory.addActionListener(
new java.awt.event.ActionListener() {
407 public void actionPerformed(java.awt.event.ActionEvent evt) {
408 sameDirectoryActionPerformed(evt);
412 otherDirectory.setBackground(
new java.awt.Color(15, 155, 155));
413 otherDirectory.setFont(
new java.awt.Font(
"Segoe UI", 0, 12));
414 otherDirectory.setForeground(
new java.awt.Color(255, 255, 255));
415 otherDirectory.setText(
"a separate directory: ");
416 otherDirectory.setOpaque(
true);
417 otherDirectory.addActionListener(
new java.awt.event.ActionListener() {
418 public void actionPerformed(java.awt.event.ActionEvent evt) {
419 otherDirectoryActionPerformed(evt);
423 otherDirectoryTextField.setBackground(
new java.awt.Color(15, 155, 155));
424 otherDirectoryTextField.setFont(
new java.awt.Font(
"Segoe UI", 0, 12));
425 otherDirectoryTextField.setAlignmentX(1.0F);
426 otherDirectoryTextField.setOpaque(
true);
428 browseButton.setBackground(
new java.awt.Color(15, 155, 155));
429 browseButton.setFont(
new java.awt.Font(
"Segoe UI", 0, 12));
430 browseButton.setForeground(
new java.awt.Color(255, 255, 255));
431 browseButton.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/images/icons/file-empty.png")));
432 browseButton.setText(
"Browse...");
433 browseButton.setAlignmentX(0.5F);
434 browseButton.setOpaque(
true);
435 browseButton.addActionListener(
new java.awt.event.ActionListener() {
436 public void actionPerformed(java.awt.event.ActionEvent evt) {
437 browseButtonActionPerformed(evt);
441 javax.swing.GroupLayout outputPanelLayout =
new javax.swing.GroupLayout(outputPanel);
442 outputPanel.setLayout(outputPanelLayout);
443 outputPanelLayout.setHorizontalGroup(
444 outputPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
445 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, outputPanelLayout.createSequentialGroup()
446 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
447 .addComponent(otherDirectoryTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE)
449 .addGroup(outputPanelLayout.createSequentialGroup()
451 .addGroup(outputPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
452 .addGroup(outputPanelLayout.createSequentialGroup()
453 .addComponent(output, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
455 .addGroup(outputPanelLayout.createSequentialGroup()
456 .addGroup(outputPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
457 .addComponent(sameDirectory, javax.swing.GroupLayout.PREFERRED_SIZE, 128, javax.swing.GroupLayout.PREFERRED_SIZE)
458 .addComponent(otherDirectory)
459 .addComponent(browseButton))
460 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
462 outputPanelLayout.setVerticalGroup(
463 outputPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
464 .addGroup(outputPanelLayout.createSequentialGroup()
466 .addComponent(output, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
467 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
468 .addComponent(sameDirectory)
469 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
470 .addComponent(otherDirectory)
471 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
472 .addComponent(otherDirectoryTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
473 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
474 .addComponent(browseButton)
478 jLabel4.setBackground(
new java.awt.Color(15, 155, 155));
479 jLabel4.setFont(
new java.awt.Font(
"Segoe UI", 0, 12));
480 jLabel4.setForeground(
new java.awt.Color(255, 255, 255));
481 jLabel4.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/images/icons/cog.png")));
482 jLabel4.setText(
"SEGMENTATION");
483 jLabel4.setToolTipText(
"Choose the parameters you want to use.");
485 jLabel5.setBackground(
new java.awt.Color(15, 155, 155));
486 jLabel5.setFont(
new java.awt.Font(
"Segoe UI", 0, 12));
487 jLabel5.setForeground(
new java.awt.Color(255, 255, 255));
488 jLabel5.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/images/icons/cog.png")));
489 jLabel5.setText(
"CORPUSNAME");
490 jLabel5.setToolTipText(
"Choose the parameters you want to use.");
492 jTextField2.setBackground(
new java.awt.Color(172, 221, 221));
493 jTextField2.addActionListener(
new java.awt.event.ActionListener() {
494 public void actionPerformed(java.awt.event.ActionEvent evt) {
495 jTextField2ActionPerformed(evt);
499 jLabel6.setBackground(
new java.awt.Color(15, 155, 155));
500 jLabel6.setFont(
new java.awt.Font(
"Segoe UI", 0, 12));
501 jLabel6.setForeground(
new java.awt.Color(255, 255, 255));
502 jLabel6.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/images/icons/cog.png")));
503 jLabel6.setText(
"FSM");
504 jLabel6.setToolTipText(
"Choose the parameters you want to use.");
506 jTextField3.setBackground(
new java.awt.Color(172, 221, 221));
507 jTextField3.addActionListener(
new java.awt.event.ActionListener() {
508 public void actionPerformed(java.awt.event.ActionEvent evt) {
509 jTextField3ActionPerformed(evt);
513 jComboBox1.setBackground(
new java.awt.Color(15, 155, 155));
514 jComboBox1.setModel(
new javax.swing.DefaultComboBoxModel<>(
new String[] {
"GENERIC",
"HIAT",
"HIATINEL",
"GAT",
"CHAT" }));
516 javax.swing.GroupLayout settingsPanelLayout =
new javax.swing.GroupLayout(settingsPanel);
517 settingsPanel.setLayout(settingsPanelLayout);
518 settingsPanelLayout.setHorizontalGroup(
519 settingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
520 .addGroup(settingsPanelLayout.createSequentialGroup()
521 .addGroup(settingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
522 .addComponent(outputPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 165, javax.swing.GroupLayout.PREFERRED_SIZE)
523 .addComponent(corpusFunction, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
524 .addGroup(settingsPanelLayout.createSequentialGroup()
526 .addGroup(settingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
527 .addGroup(settingsPanelLayout.createSequentialGroup()
528 .addComponent(jLabel4)
529 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
530 .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
531 .addGroup(settingsPanelLayout.createSequentialGroup()
532 .addGroup(settingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
533 .addComponent(jLabel5)
534 .addComponent(jLabel6))
536 .addGroup(settingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
537 .addComponent(jTextField3)
538 .addComponent(jTextField2))))))
541 settingsPanelLayout.setVerticalGroup(
542 settingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
543 .addGroup(settingsPanelLayout.createSequentialGroup()
545 .addComponent(corpusFunction, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
546 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
547 .addGroup(settingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
548 .addComponent(jLabel4)
549 .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
551 .addGroup(settingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
552 .addComponent(jLabel5)
553 .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
554 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
555 .addGroup(settingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
556 .addComponent(jLabel6)
557 .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
558 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
559 .addComponent(outputPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
560 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
563 helpButton.setBackground(
new java.awt.Color(15, 155, 155));
564 helpButton.setFont(
new java.awt.Font(
"Segoe UI", 0, 12));
565 helpButton.setForeground(
new java.awt.Color(255, 255, 255));
566 helpButton.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/images/icons/question-circle.png")));
567 helpButton.setText(
"Help");
568 helpButton.addActionListener(
new java.awt.event.ActionListener() {
569 public void actionPerformed(java.awt.event.ActionEvent evt) {
570 helpButtonActionPerformed(evt);
574 progressBar.setBackground(
new java.awt.Color(15, 155, 155));
575 progressBar.setFont(
new java.awt.Font(
"Segoe UI", 0, 12));
576 progressBar.setForeground(
new java.awt.Color(255, 255, 255));
577 progressBar.setMaximumSize(
new java.awt.Dimension(300, 19));
578 progressBar.setString(
"Waiting for input...");
579 progressBar.setStringPainted(
true);
581 dropletToggleButton.setBackground(
new java.awt.Color(15, 155, 155));
582 dropletToggleButton.setFont(
new java.awt.Font(
"Segoe UI", 0, 12));
583 dropletToggleButton.setForeground(
new java.awt.Color(255, 255, 255));
584 dropletToggleButton.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/images/icons/chevron-left-circle.png")));
585 dropletToggleButton.setText(
"Reduce to droplet");
586 dropletToggleButton.addActionListener(
new java.awt.event.ActionListener() {
587 public void actionPerformed(java.awt.event.ActionEvent evt) {
588 dropletToggleButtonActionPerformed(evt);
592 javax.swing.GroupLayout backGroundPanelLayout =
new javax.swing.GroupLayout(backGroundPanel);
593 backGroundPanel.setLayout(backGroundPanelLayout);
594 backGroundPanelLayout.setHorizontalGroup(
595 backGroundPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
596 .addGroup(backGroundPanelLayout.createSequentialGroup()
598 .addGroup(backGroundPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
599 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, backGroundPanelLayout.createSequentialGroup()
600 .addComponent(settingsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
601 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
602 .addComponent(mainPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 653, javax.swing.GroupLayout.PREFERRED_SIZE))
603 .addGroup(backGroundPanelLayout.createSequentialGroup()
604 .addComponent(lowerPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 851, javax.swing.GroupLayout.PREFERRED_SIZE)
605 .addGap(0, 0, Short.MAX_VALUE))
606 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, backGroundPanelLayout.createSequentialGroup()
607 .addGap(0, 0, Short.MAX_VALUE)
608 .addComponent(helpButton)
609 .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, 676, javax.swing.GroupLayout.PREFERRED_SIZE)
610 .addComponent(dropletToggleButton)))
612 .addGroup(backGroundPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
613 .addGroup(backGroundPanelLayout.createSequentialGroup()
615 .addComponent(sidePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
616 .addContainerGap(659, Short.MAX_VALUE)))
618 backGroundPanelLayout.setVerticalGroup(
619 backGroundPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
620 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, backGroundPanelLayout.createSequentialGroup()
621 .addGroup(backGroundPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
622 .addGroup(backGroundPanelLayout.createSequentialGroup()
624 .addComponent(mainPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
625 .addGap(18, 18, Short.MAX_VALUE))
626 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, backGroundPanelLayout.createSequentialGroup()
627 .addContainerGap(54, Short.MAX_VALUE)
628 .addComponent(settingsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
629 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)))
630 .addComponent(lowerPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
631 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
632 .addGroup(backGroundPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
633 .addComponent(helpButton)
634 .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
635 .addComponent(dropletToggleButton)))
636 .addGroup(backGroundPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
637 .addGroup(backGroundPanelLayout.createSequentialGroup()
639 .addComponent(sidePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
640 .addContainerGap(15, Short.MAX_VALUE)))
643 javax.swing.GroupLayout layout =
new javax.swing.GroupLayout(getContentPane());
644 getContentPane().setLayout(layout);
645 layout.setHorizontalGroup(
646 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
647 .addGroup(layout.createSequentialGroup()
648 .addComponent(backGroundPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
649 .addGap(0, 6, Short.MAX_VALUE))
651 layout.setVerticalGroup(
652 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
653 .addGroup(layout.createSequentialGroup()
654 .addComponent(backGroundPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
655 .addGap(0, 0, Short.MAX_VALUE))
661 private void teiFilesListValueChanged(javax.swing.event.ListSelectionEvent evt) {
662 enableOperations(teiFilesList.getSelectedIndex() >= 0);
664 void enableOperations(
boolean enable) {
665 showXMLButton.setEnabled(enable);
666 showHTMLButton.setEnabled(enable);
668 private void showXMLButtonActionPerformed(java.awt.event.ActionEvent evt) {
669 File f = (File) (teiFilesList.getSelectedValue());
673 }
catch (Exception ex) {
674 ex.printStackTrace();
675 JOptionPane.showMessageDialog(rootPane, ex.getLocalizedMessage());
678 Format format = Format.getPrettyFormat();
679 XMLOutputter outputter =
new XMLOutputter(format);
681 JTextPane textPane =
new JTextPane();
682 StyledDocument doc = (StyledDocument) textPane.getDocument();
684 Style style = doc.addStyle(
"StyleName", null);
686 StyleConstants.setFontFamily(style,
"Courier");
688 StyleConstants.setFontSize(style, 12);
690 StyleConstants.setForeground(style, Color.black);
696 JDialog dialog =
new JDialog(
this,
true);
697 dialog.setTitle(f.getName());
698 dialog.getContentPane().setLayout(
new BorderLayout());
699 dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
700 dialog.getContentPane().add(
new JScrollPane(textPane), BorderLayout.CENTER);
702 dialog.setLocationRelativeTo(
this);
703 textPane.setCaretPosition(0);
704 dialog.setVisible(
true);
707 private void showHTMLButtonActionPerformed(java.awt.event.ActionEvent evt) {
709 File f = (File) (teiFilesList.getSelectedValue());
710 File tempHTML = File.createTempFile(
"teidrophtml",
".html");
711 tempHTML.deleteOnExit();
713 FileOutputStream fos =
new FileOutputStream(tempHTML);
716 System.out.println(
"document written.");
718 }
catch (Exception ex) {
719 ex.printStackTrace();
720 JOptionPane.showMessageDialog(rootPane, ex.getLocalizedMessage());
724 private void dropletToggleButtonActionPerformed(java.awt.event.ActionEvent evt) {
725 boolean hide = !(dropletToggleButton.isSelected());
727 dropletToggleButton.setText(
"Expand");
729 dropletToggleButton.setText(
"Reduce to droplet");
731 messageAndProgressPanel.setVisible(hide);
732 settingsPanel.setVisible(hide);
733 operationsPanel.setVisible(hide);
734 listScrollPane.setVisible(hide);
738 private void helpButtonActionPerformed(java.awt.event.ActionEvent evt) {
742 private void jTextField3ActionPerformed(java.awt.event.ActionEvent evt) {
746 private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {
750 private void browseButtonActionPerformed(java.awt.event.ActionEvent evt) {
751 JFileChooser jfc =
new JFileChooser();
752 jfc.setDialogTitle(
"Choose directory");
753 jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
754 int ret = jfc.showOpenDialog(
this);
755 if (ret == JFileChooser.APPROVE_OPTION) {
756 otherDirectoryTextField.setText(jfc.getSelectedFile().getAbsolutePath());
757 otherDirectory.setSelected(
true);
761 private void otherDirectoryActionPerformed(java.awt.event.ActionEvent evt) {
765 private void sameDirectoryActionPerformed(java.awt.event.ActionEvent evt) {
769 private void parseMethodComboBoxActionPerformed(java.awt.event.ActionEvent evt) {
775 Desktop.getDesktop().browse(
new URI(
"https://lab.multilingua.uni-hamburg.de/redmine/projects/redmine/wiki/How_to_use_the_Corpus_Validator"));
776 }
catch (IOException ex) {
777 ex.printStackTrace();
778 }
catch (URISyntaxException ex) {
779 Logger.getLogger(
ApplicationFrame.class.getName()).log(Level.SEVERE, null, ex);
784 void message(
final String s) {
786 while (index < s.length()) {
787 String schnippel = s.substring(index, Math.min(index + 75, s.length()));
788 messagesTextArea.append(schnippel +
"\n");
791 messagesTextArea.setCaretPosition(messagesTextArea.getText().length() - 1);
794 void updateProgress(String s) {
796 progressBar.setValue((
int) Math.round(((
double) done / all) * 100));
797 progressBar.setString(s);
799 progressBar.setString(
"Done.");
800 dropPanel.
setIcon(inactiveIcon);
801 message(
"***** DONE *****");
803 if ((teiFilesList.getModel().getSize() > 0) || (teiFilesList.isVisible())) {
804 final int lastIndex = teiFilesList.getModel().getSize() - 1;
806 SwingUtilities.invokeAndWait(
new Runnable() {
808 teiFilesList.getSelectionModel().setSelectionInterval(lastIndex, lastIndex);
811 teiFilesList.scrollRectToVisible(teiFilesList.getCellBounds(lastIndex, lastIndex));
812 }
catch (Exception ex) {
813 ex.printStackTrace();
818 void handleFileDrop(
final File[] files) {
819 for (File f : files) {
821 URL url = f.toURI().toURL();
822 if (f.isDirectory()) {
823 message(
"[Directory " + f.getName() +
"]");
824 System.out.println(
"[Directory " + f.getName() +
"]");
827 ArrayList<CorpusData> allcd = (ArrayList<CorpusData>) cio.
read(url);
829 message(cd.getFilename() +
" added to list.");
837 message(f.getName() +
" not added to list (data suffix not recognized).");
840 }
catch (MalformedURLException ex) {
841 message(f.getName() +
" not added to list (file could not be read).");
842 }
catch (URISyntaxException ex) {
843 message(f.getName() +
" not added to list (file could not be read).");
844 }
catch (IOException ex) {
845 message(f.getName() +
" not added to list (file could not be read).");
846 }
catch (SAXException ex) {
847 message(f.getName() +
" not added to list (file could not be read).");
848 }
catch (JexmaraldaException ex) {
849 message(f.getName() +
" not added to list (file could not be read).");
850 }
catch (ClassNotFoundException ex) {
851 message(f.getName() +
" not added to list (file could not be read).");
855 all = allFiles.size();
859 Thread t =
new Thread() {
875 if (sameDirectory.isSelected()){
876 reportlocation = cd.getParentURL();
878 reportlocation = Paths.get(otherDirectoryTextField.getText()).toUri().toURL();
880 URI uri = reportlocation.toURI();
881 URI parentURI = uri.getPath().endsWith(
"/") ? uri.resolve(
"..") : uri.resolve(
".");
882 String errorlistlocstring = Paths.get(parentURI).toString() + File.separator +
"report_output.html";
883 URL errorlistlocation = Paths.get(errorlistlocstring).toUri().toURL();
887 List<String> s = Arrays.asList(String.valueOf(parseMethodComboBox.getSelectedItem()));
889 for (String str : s) {
890 message(
"Added function " + str +
" to list");
899 URL basedirectory = cd.getParentURL();
901 String absoluteReport = reportOutput.replaceAll(basedirectory.toString(),
"");
902 cio.
write(absoluteReport, errorlistlocation);
903 message(
"Wrote ErrorList at " + errorlistlocation);
904 listModel.addElement(
new File(cd.getFilename()));
905 updateProgress(cd.getFilename());
906 }
catch (MalformedURLException ex) {
907 message(
"Couldn't write error list - location is incorrect");
908 }
catch (IOException ex) {
909 message(
"Couldn't write error list - location is incorrect");
910 }
catch (URISyntaxException ex) {
911 message(
"Couldn't write error list - location is incorrect");
923 public static void main(String args[]) {
930 for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
931 if (
"Nimbus".equals(info.getName())) {
932 javax.swing.UIManager.setLookAndFeel(info.getClassName());
936 }
catch (ClassNotFoundException ex) {
937 java.util.logging.Logger.getLogger(
CorpusServicesGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
938 }
catch (InstantiationException ex) {
939 java.util.logging.Logger.getLogger(
CorpusServicesGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
940 }
catch (IllegalAccessException ex) {
941 java.util.logging.Logger.getLogger(
CorpusServicesGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
942 }
catch (javax.swing.UnsupportedLookAndFeelException ex) {
943 java.util.logging.Logger.getLogger(
CorpusServicesGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
948 java.awt.EventQueue.invokeLater(
new Runnable() {
956 private java.awt.Panel backGroundPanel;
957 private javax.swing.JButton browseButton;
958 private javax.swing.JPanel corpusFunction;
959 private javax.swing.JPanel corpusServices;
960 private javax.swing.JToggleButton dropletToggleButton;
961 private javax.swing.JButton helpButton;
962 private javax.swing.JComboBox<String> jComboBox1;
963 private javax.swing.JLabel jLabel1;
964 private javax.swing.JLabel jLabel2;
965 private javax.swing.JLabel jLabel3;
966 private javax.swing.JLabel jLabel4;
967 private javax.swing.JLabel jLabel5;
968 private javax.swing.JLabel jLabel6;
969 private javax.swing.JPanel jPanel1;
970 private javax.swing.JPanel jPanel7;
971 private javax.swing.JTextField jTextField2;
972 private javax.swing.JTextField jTextField3;
973 private javax.swing.JScrollPane listScrollPane;
974 private javax.swing.JPanel lowerPanel;
975 private javax.swing.JPanel mainPanel;
976 private javax.swing.JPanel messageAndProgressPanel;
977 private javax.swing.JScrollPane messageScrollPane;
978 private javax.swing.JTextArea messagesTextArea;
979 private javax.swing.JPanel operationsPanel;
980 private javax.swing.JRadioButton otherDirectory;
981 private javax.swing.JTextField otherDirectoryTextField;
982 private javax.swing.JLabel output;
983 private javax.swing.JPanel outputPanel;
984 private java.awt.Panel panel1;
985 private javax.swing.JComboBox parseMethodComboBox;
986 private javax.swing.JProgressBar progressBar;
987 private javax.swing.JRadioButton sameDirectory;
988 private javax.swing.JPanel settingsPanel;
989 private javax.swing.JButton showHTMLButton;
990 private javax.swing.JButton showXMLButton;
991 private javax.swing.JPanel sidePanel;
992 private javax.swing.JList teiFilesList;
static Collection< String > getAllExistingCFs()
Report runCorpusFunction(Corpus c, CorpusFunction cf)
static String generateDataTableHTML(Collection< ReportItem > errors, String summarylines)
CorpusData readFileURL(URL url, Collection< Class<?extends CorpusData >> clcds)
Collection< ReportItem > getRawStatistics()
Collection< CorpusData > read(URL url)
static Collection< CorpusFunction > corpusFunctionStrings2Classes(Collection< String > corpusfunctionstrings)
static void main(String args[])
void setChosencorpusfunctions(Collection< String > chosencorpusfunctions)
Collection< String > getChosencorpusfunctions()
void setIcon(ImageIcon icon)
void write(CorpusData cd, URL url)