📄 exportshoebox.java
字号:
gridBagConstraints.insets = insets; optionsPanel.add(wrapLinesCB, gridBagConstraints); JPanel fill = new JPanel(); Dimension fillDim = new Dimension(30, 10); fill.setPreferredSize(fillDim); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; optionsPanel.add(fill, gridBagConstraints); numCharTF.setEnabled(false); numCharTF.setBackground(Constants.DEFAULTBACKGROUNDCOLOR); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; optionsPanel.add(numCharTF, gridBagConstraints); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; optionsPanel.add(charPerLineLabel, gridBagConstraints); ButtonGroup group = new ButtonGroup(); group.add(ssMSFormatRB); ssMSFormatRB.setSelected(true); group.add(hhMMSSMSFormatRB); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; optionsPanel.add(timeFormatLabel, gridBagConstraints); fill = new JPanel(); fillDim = new Dimension(30, 10); fill.setPreferredSize(fillDim); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.gridheight = 2; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; optionsPanel.add(fill, gridBagConstraints); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; gridBagConstraints.gridwidth = 2; gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; optionsPanel.add(hhMMSSMSFormatRB, gridBagConstraints); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 4; gridBagConstraints.gridwidth = 2; gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; optionsPanel.add(ssMSFormatRB, gridBagConstraints); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; optionsPanel.add(correctTimesCB, gridBagConstraints); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = insets; getContentPane().add(optionsPanel, gridBagConstraints); markerPanel = new JPanel(); markerPanel.setLayout(new GridBagLayout()); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; markerPanel.add(typeRB, gridBagConstraints); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; markerPanel.add(typeLabel, gridBagConstraints); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = insets; markerPanel.add(typField, gridBagConstraints); typButton.addActionListener(this); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 0; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; markerPanel.add(typButton, gridBagConstraints); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.gridwidth = 2; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; markerPanel.add(allUnicodeCB, gridBagConstraints); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; markerPanel.add(specRB, gridBagConstraints); fieldSpecButton.addActionListener(this); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; markerPanel.add(fieldSpecButton, gridBagConstraints); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 2; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = insets; markerPanel.add(dbTypeLabel, gridBagConstraints); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 2; gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; markerPanel.add(dbTypField, gridBagConstraints); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; markerPanel.add(tierNamesRB, gridBagConstraints); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; markerPanel.add(tierNamesLabel, gridBagConstraints); generateMarkersCB.addItemListener(this); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 4; gridBagConstraints.gridwidth = 2; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = insets; markerPanel.add(generateMarkersCB, gridBagConstraints); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = insets; getContentPane().add(markerPanel, gridBagConstraints); //move buttonPanel from 3rd to 4th component gridBagConstraints.gridy = 4; gridBagConstraints.fill = GridBagConstraints.NONE; gridBagConstraints.anchor = GridBagConstraints.CENTER; ((GridBagLayout) getContentPane().getLayout()).setConstraints(buttonPanel, gridBagConstraints); setDefaultNumOfChars(); setEnabledAutoGenerate(false); setShoeboxMarkerRB(); updateLocale(); } /** * Shows a warning/error dialog with the specified message string. * * @param message the message to display */ protected void showWarningDialog(String message) { JOptionPane.showMessageDialog(this, message, ElanLocale.getString("Message.Warning"), JOptionPane.WARNING_MESSAGE); } /** * Starts the actual export after performing some checks. * * @return true if export succeeded, false oherwise */ protected boolean startExport() { if (!checkMarkerFields()) { return false; } List selectedTiers = getSelectedTiers(); if (selectedTiers.size() == 0) { JOptionPane.showMessageDialog(this, ElanLocale.getString("ExportTradTranscript.Message.NoTiers"), ElanLocale.getString("Message.Warning"), JOptionPane.WARNING_MESSAGE); return false; } // check the chars per line value int charsPerLine = Integer.MAX_VALUE; if (wrapLinesCB.isSelected()) { String textValue = numCharTF.getText().trim(); try { charsPerLine = Integer.parseInt(textValue); } catch (NumberFormatException nfe) { showWarningDialog(ElanLocale.getString( "ExportShoebox.Message.InvalidNumber")); numCharTF.selectAll(); numCharTF.requestFocus(); return false; } } int timeFormat = Interlinearizer.SSMS; if (hhMMSSMSFormatRB.isSelected()) { timeFormat = Interlinearizer.HHMMSSMS; } // prompt for file name and location File exportFile = promptForFile(ElanLocale.getString( "ExportShoeboxDialog.Title"), FileExtension.TEXT_EXT); if (exportFile == null) { return false; } exportFileName = exportFile.getPath(); // export.... boolean success = doExport(exportFileName, selectedTiers, charsPerLine, timeFormat, correctTimesCB.isSelected()); if (success) { if (generateMarkersCB.isSelected()) { autoGenerateMarkerFile(); } } return success; } /** * Applies localized strings to the ui elements. For historic reasons the * string identifiers start with "TokenizeDialog" */ protected void updateLocale() { super.updateLocale(); setTitle(ElanLocale.getString("ExportShoebox.Title")); titleLabel.setText(ElanLocale.getString("ExportShoebox.Title")); markerPanel.setBorder(new TitledBorder(ElanLocale.getString( "ExportShoebox.Label.Markers"))); wrapLinesCB.setText(ElanLocale.getString( "ExportShoebox.Label.WrapBlocks")); charPerLineLabel.setText(ElanLocale.getString( "ExportShoebox.Label.NumberChars")); timeFormatLabel.setText(ElanLocale.getString( "ExportShoebox.Label.Format")); hhMMSSMSFormatRB.setText(ElanLocale.getString( "InterlinearizerOptionsDlg.TimeCodeFormat.TimeCode")); ssMSFormatRB.setText(ElanLocale.getString( "InterlinearizerOptionsDlg.TimeCodeFormat.Seconds")); correctTimesCB.setText(ElanLocale.getString("ExportDialog.CorrectTimes")); typeLabel.setText(ElanLocale.getString("ExportShoebox.Label.Type")); allUnicodeCB.setText(ElanLocale.getString( "ExportShoebox.CheckBox.AllUnicode")); fieldSpecButton.setText(ElanLocale.getString( "ExportShoebox.Button.FieldSpec")); dbTypeLabel.setText(ElanLocale.getString( "ExportShoebox.Label.SpecifyType")); tierNamesLabel.setText(ElanLocale.getString( "ExportShoebox.Label.UseTierNames")); generateMarkersCB.setText(ElanLocale.getString( "ExportShoebox.CheckBox.AutoGenerateMarkers")); } private void setDefaultNumOfChars() { numCharTF.setEnabled(true); numCharTF.setBackground(Constants.SHAREDCOLOR4); if ((numCharTF.getText() != null) || (numCharTF.getText().length() == 0)) { numCharTF.setText("" + NUM_CHARS); } } private void setEnabledAllUnicode(boolean enable) { allUnicodeCB.setSelected(false); allUnicodeCB.setEnabled(enable); } private void setEnabledAutoGenerate(boolean enable) { generateMarkersCB.setSelected(false); generateMarkersCB.setEnabled(enable); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -