📄 interlinearpreviewdlg.java
字号:
interlinearizer.setBlockWrapStyle(Interlinear.BLOCK_BOUNDARY); } else if (blockWrapString.equals(blockWrapEachBlock)) { interlinearizer.setBlockWrapStyle(Interlinear.EACH_BLOCK); } String sortingString = (String) sortingComboBox.getSelectedItem(); if (sortingString.equals(sortingAsFile)) { interlinearizer.setSortingStyle(Interlinear.EXTERNALLY_SPECIFIED); } else if (sortingString.equals(sortingTierHierarchy)) { interlinearizer.setSortingStyle(Interlinear.TIER_HIERARCHY); } else if (sortingString.equals(sortingLinguisticType)) { interlinearizer.setSortingStyle(Interlinear.BY_LINGUISTIC_TYPE); } else if (sortingString.equals(sortingParticipant)) { interlinearizer.setSortingStyle(Interlinear.BY_PARTICIPANT); } if (interlinearizer.getOutputMode() == Interlinear.PRINT) { int lineSpacing = 0; try { lineSpacing = Integer.parseInt(lineSpacingTextField.getText()); } catch (NumberFormatException nfe) { lineSpacingTextField.setText("" + lineSpacing); } interlinearizer.setLineSpacing(lineSpacing); } else { lineSpacingTextField.setText(""); } int blockSpacing = -1; // default: derived from line spacing try { blockSpacing = Integer.parseInt(blockSpacingTextField.getText()); } catch (NumberFormatException nfe) { blockSpacingTextField.setText("" + interlinearizer.getBlockSpacing()); } interlinearizer.setBlockSpacing(blockSpacing); // visible tiers interlinearizer.setVisibleTiers(getVisibleTierList()); applyFontSizes(); if (interlinearizer.getOutputMode() == Interlinear.PRINT) { interlinearizer.renderView(previewPanel.getBufferedImage()); // rendering (calculating) the view causes a new total height to be calculated previewPanel.updateView(); } else if (interlinearizer.getOutputMode() == Interlinear.HTML) { interlinearizer.renderView(previewPanel.getBufferedImage()); previewPanel.updateView(); } else { interlinearizer.renderView(); int pageWidth = 600; FontMetrics metrics = previewPanel.getBufferedImage().getGraphics() .getFontMetrics(Interlinear.MONOSPACED_FONT); if (metrics != null) { int cw = metrics.charWidth('w'); //any char pageWidth = cw * interlinearizer.getWidth(); } previewPanel.setImageableSize(new Dimension(pageWidth, interlinearizer.getHeight())); interlinearizer.drawViewOnImage(previewPanel.getBufferedImage(), previewPanel.getOffset()); previewPanel.repaint(); } } /** * Creates and executes a PrintCommand. */ private void doPrint() { Command c = ELANCommandFactory.createCommand(null, ELANCommandFactory.PRINT); c.execute(interlinearizer.getTranscription(), new Object[] { interlinearizer }); /* PrintService[] services = PrintServiceLookup.lookupPrintServices( DocFlavor.INPUT_STREAM.JPEG, null); PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet(); PrintService service = ServiceUI.printDialog(null, 50, 50, services, null, null, attributes); */ } /** * Shows a save as dialog and starts rendering to the text file. */ private void doSaveText() { String fileName = promptForFileName(); if (fileName != null) { try { File exportFile = new File(fileName); CharacterRenderer render = new CharacterRenderer(interlinearizer, exportFile, charEncoding); render.renderText(); // success message? /* JOptionPane.showMessageDialog(this, ElanLocale.getString("ExportDialog.Message.Error"), ElanLocale.getString("Message.Warning"), JOptionPane.INFORMATION_MESSAGE); */ } catch (Exception e) { // FileNotFound, IO, Security, Null etc JOptionPane.showMessageDialog(this, ElanLocale.getString( "InterlinearizerOptionsDlg.Error.TextOut") + " \n" + "(" + e.getMessage() + ")", ElanLocale.getString("Message.Error"), JOptionPane.WARNING_MESSAGE); } } } /** * Shows a save as dialog and starts rendering to the html file. */ private void doSaveHTML() { String fileName = promptForHTMLFileName(); if (fileName != null) { try { File exportFile = new File(fileName); HTMLRenderer render = new HTMLRenderer(interlinearizer); render.renderToFile(exportFile); // success message? /* JOptionPane.showMessageDialog(this, ElanLocale.getString("ExportDialog.Message.Error"), ElanLocale.getString("Message.Warning"), JOptionPane.INFORMATION_MESSAGE); */ } catch (Exception e) { // FileNotFound, IO, Security, Null etc JOptionPane.showMessageDialog(this, ElanLocale.getString( "InterlinearizerOptionsDlg.Error.TextOut") + " \n" + "(" + e.getMessage() + ")", ElanLocale.getString("Message.Error"), JOptionPane.WARNING_MESSAGE); } } } /** * Invokes a standard, platform specific page setup dialog */ private void doPageSetup() { Command c = ELANCommandFactory.createCommand(null, ELANCommandFactory.PAGESETUP); c.execute(interlinearizer.getTranscription(), null); doApplyChanges(); // possibly width, height are changed } /** * Prompts the user for a file name and location. * * @return a file (unique) path */ private String promptForFileName() { String exportDir = (String) Preferences.get("LastUsedExportDir", null); if (exportDir == null) { exportDir = System.getProperty("user.dir"); } TextExportFileChooser chooser = new TextExportFileChooser(); chooser.setCurrentDirectory(new File(exportDir)); chooser.setDialogTitle(ElanLocale.getString("ExportDialog.ExportToFile")); File exportFile = null; FileFilter filter = ElanFileFilter.createFileFilter(ElanFileFilter.TEXT_TYPE); chooser.setFileFilter(filter); if (chooser.showSaveDialog(null, null) == JFileChooser.APPROVE_OPTION) { File curDir = chooser.getCurrentDirectory(); if (curDir != null) { Preferences.set("LastUsedExportDir", curDir.getAbsolutePath(), null); } exportFile = chooser.getSelectedFile(); if (exportFile != null) { charEncoding = chooser.getSelectedEncoding(); String name = exportFile.getAbsolutePath(); String lowerPathName = name.toLowerCase(); String[] exts = FileExtension.TEXT_EXT; boolean validExt = false; for (int i = 0; i < exts.length; i++) { if (lowerPathName.endsWith("." + exts[i])) { validExt = true; break; } } if (!validExt) { name += ("." + exts[0]); exportFile = new File(name); } if (exportFile.exists()) { int answer = JOptionPane.showConfirmDialog(null, ElanLocale.getString("Message.Overwrite"), ElanLocale.getString("SaveDialog.Message.Title"), JOptionPane.YES_NO_OPTION); if (answer == JOptionPane.NO_OPTION) { return promptForFileName(); } else { return name; } } else { return name; } } else { return null; } } else { // save dialog canceled return null; } } /** * Prompts the user for a file name and location. * * @return a file (unique) path */ private String promptForHTMLFileName() { String exportDir = (String) Preferences.get("LastUsedExportDir", null); if (exportDir == null) { exportDir = System.getProperty("user.dir"); } JFileChooser chooser = new JFileChooser(); chooser.setCurrentDirectory(new File(exportDir)); chooser.setDialogTitle(ElanLocale.getString("ExportDialog.ExportToFile")); // andere titel File exportFile = null; FileFilter filter = ElanFileFilter.createFileFilter(ElanFileFilter.HTML_TYPE); chooser.setFileFilter(filter); if (chooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) { File curDir = chooser.getCurrentDirectory(); if (curDir != null) { Preferences.set("LastUsedExportDir", curDir.getAbsolutePath(), null); } exportFile = chooser.getSelectedFile(); if (exportFile != null) { String name = exportFile.getAbsolutePath(); String lowerPathName = name.toLowerCase(); String[] exts = FileExtension.HTML_EXT; boolean validExt = false; for (int i = 0; i < exts.length; i++) { if (lowerPathName.endsWith("." + exts[i])) { validExt = true; break; } } if (!validExt) { name += ("." + exts[0]); exportFile = new File(name); } if (exportFile.exists()) { int answer = JOptionPane.showConfirmDialog(null, ElanLocale.getString("Message.Overwrite"), ElanLocale.getString("SaveDialog.Message.Title"), JOptionPane.YES_NO_OPTION); if (answer == JOptionPane.NO_OPTION) { return promptForFileName(); } else { return name; } } else { return name; } } else { return null; } } else { // save dialog canceled return null; } } /** * The action performed method. * * @param event the action event */ public void actionPerformed(ActionEvent event) { if (event.getSource() == applyChangesButton) { doApplyChanges(); } else if (event.getSource() == printButton) { if (interlinearizer.getOutputMode() == Interlinear.PRINT) { doPrint(); } else if (interlinearizer.getOutputMode() == Interlinear.HTML) { doSaveHTML(); } else { doSaveText(); } } else if (event.getSource() == pageSetupButton) { doPageSetup(); } else if (event.getSource() == fontSizesButton) { doSetFontSizes(); } else if (event.getSource() == upButton) { moveUp(); } else if (event.getSource() == downButton) { moveDown(); } } /** * Updates the checked state of the export checkboxes. * * @param lse the list selection event */ public void valueChanged(ListSelectionEvent lse) { if ((model != null) && lse.getValueIsAdjusting()) { int b = lse.getFirstIndex(); int e = lse.getLastIndex(); int col = model.findColumn(PRINT_COLUMN); for (int i = b; i <= e; i++) { if (tierTable.isRowSelected(i)) { model.setValueAt(Boolean.TRUE, i, col); } } } } /** * The item state changed handling. * * @param ie the ItemEvent */ public void itemStateChanged(ItemEvent ie) { if (ie.getSource() == sortingComboBox) { if (ie.getStateChange() == ItemEvent.SELECTED) { int nextSort = curSortMode; String sortMode = (String) sortingComboBox.getSelectedItem(); if (sortMode == sortingAsFile) { nextSort = Interlinear.EXTERNALLY_SPECIFIED; } else if (sortMode == sortingTierHierarchy) { nextSort = Interlinear.TIER_HIERARCHY; } else if (sortMode == sortingParticipant) { nextSort = Interlinear.BY_PARTICIPANT; } else { nextSort = Interlinear.BY_LINGUISTIC_TYPE; } curSortMode = nextSort; sortTiersTable(); } } else if (ie.getSource() == insertTabCheckBox) { interlinearizer.setInsertTabs(insertTabCheckBox.isSelected()); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -