📄 jcdwriter.java
字号:
/* calculateFileSystemSize.setText("Calculate Image Size"); calculateFileSystemSize.setToolTipText("Creates an .iso image of the CD."); calculateFileSystemSize.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { calculateFileSystemSizeActionPerformed(evt); } }); diskMenu.add(calculateFileSystemSize); */ mainMenuBar.add(diskMenu); helpMenu.setMnemonic('H'); helpMenu.setText("Help"); aboutMenuItem.setText("About jCDWriter"); aboutMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { aboutMenuItemActionPerformed(evt); } }); helpMenu.add(aboutMenuItem); mainMenuBar.add(helpMenu); setJMenuBar(mainMenuBar); // Make a toolbar mainToolBar = new javax.swing.JToolBar(); // new layout button newLayoutButton = new javax.swing.JButton(); newLayoutButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jcdwriter/images/new_icon.png"))); newLayoutButton.setToolTipText("Create New Layout"); newLayoutButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { newLayoutActionPerformed(evt); } }); mainToolBar.add(newLayoutButton); // open layout button openLayoutButton = new javax.swing.JButton(); openLayoutButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jcdwriter/images/open_icon.png"))); openLayoutButton.setToolTipText("Open Saved Layout"); openLayoutButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { loadLayoutActionPerformed(evt); } }); mainToolBar.add(openLayoutButton); // edit preferences button editPreferencesButton = new javax.swing.JButton(); editPreferencesButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jcdwriter/images/preferences.png"))); editPreferencesButton.setToolTipText("Edit Preferences"); editPreferencesButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { preferencesMenuItemActionPerformed(evt); } }); mainToolBar.add(editPreferencesButton); // erase disk button eraseDiskButton = new javax.swing.JButton(); eraseDiskButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jcdwriter/images/erasedisk.png"))); eraseDiskButton.setToolTipText("Erase R/W Disk"); eraseDiskButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { blankCDActionPerformed(evt); } }); mainToolBar.add(eraseDiskButton); // write disk image writeDiskImageButton = new javax.swing.JButton(); writeDiskImageButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jcdwriter/images/write_disk_image.png"))); writeDiskImageButton.setToolTipText("Write Disk Image To File"); writeDiskImageButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { createCDImageActionPerformed(evt); } }); mainToolBar.add(writeDiskImageButton); // write disk using image button writeDiskFromImageButton = new javax.swing.JButton(); writeDiskFromImageButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jcdwriter/images/write_disk_from_image.png"))); writeDiskFromImageButton.setToolTipText("Write Disk From Image File"); writeDiskFromImageButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { recordFromISOImageActionPerformed(evt); } }); mainToolBar.add(writeDiskFromImageButton); // write disk button writeDiskButton = new javax.swing.JButton(); writeDiskButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jcdwriter/images/writedisk.png"))); writeDiskButton.setToolTipText("Write Disk"); writeDiskButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { recordDirectlyToDisk(evt); } }); mainToolBar.add(writeDiskButton); mainPanel.add(mainToolBar, java.awt.BorderLayout.NORTH); pack(); } private void calculateFileSystemSizeActionPerformed(java.awt.event.ActionEvent evt) { // Add your handling code here: virtualFileSystemPanel.printVirtualFileSystemSize(); } private void saveLayoutActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser fileChooser = new JFileChooser(applicationSettings.diskLayoutFileDirectory()); int returnVal = fileChooser.showSaveDialog(this); if(returnVal == JFileChooser.APPROVE_OPTION) { currentFile = new File(fileChooser.getSelectedFile().getAbsolutePath()); saveDiskLayout(); } else { } } private void loadLayoutActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser fileChooser = new JFileChooser(applicationSettings.diskLayoutFileDirectory()); int returnVal = fileChooser.showOpenDialog(this); if(returnVal == JFileChooser.APPROVE_OPTION) { currentFile = new File(fileChooser.getSelectedFile().getAbsolutePath()); readDiskLayout(); } else { } } private void newLayoutActionPerformed(java.awt.event.ActionEvent evt) { virtualFileSystemPanel.initializeTreeModel(); } private void createCDImageActionPerformed(java.awt.event.ActionEvent evt) { if (virtualFileSystemPanel.isEmpty()) { JOptionPane.showMessageDialog(null, "Nothing in disk layout. Add some files and try again.", "No files in layout", JOptionPane.INFORMATION_MESSAGE); } else { String creatorID = System.getProperty("user.name"); creatorID = JOptionPane.showInputDialog("Enter creator ID", creatorID); if (creatorID != null && creatorID.length() != 0) { String preparerID = JOptionPane.showInputDialog("Enter preparor ID", creatorID); if (preparerID != null && preparerID.length() != 0) { JFileChooser fileChooser = new JFileChooser(applicationSettings.isoDiskImageDirectory()); int returnVal = fileChooser.showSaveDialog(this); if(returnVal == JFileChooser.APPROVE_OPTION) { isoFileName = fileChooser.getSelectedFile().getAbsolutePath(); String mkisofsCmdStr = mkisofs.writeImageCommandStrUsing(isoFileName, virtualFileSystemPanel.graftPoints(), virtualFileSystemPanel.excludedPaths()); try { executeCommandLine(mkisofsCmdStr, new MKISOFSOutputAnalyzer(), true, false, true); } catch (IOException ie) { JOptionPane.showMessageDialog(this, "Error: Make sure mkisofs path is set correctly in preferences"); } } else { } } } } } private void blankCDActionPerformed(java.awt.event.ActionEvent evt) { String cdrecordCmdStr = cdrecord.blankDiskCommandString("fast"); CDRECORDOutputAnalyzer outputAnalyzer = new CDRECORDOutputAnalyzer(); try { executeCommandLine(cdrecordCmdStr, outputAnalyzer, true, false, true); } catch (IOException ie) { JOptionPane.showMessageDialog(this, "Error: Make sure cdrecord path is set correctly in preferences"); } } private void executeCommandLine(String cmd, OutputAnalyzer oAnalyzer, boolean autoStart, boolean autoClose, boolean waitForCompletion) throws IOException { Semaphore s = null; if (waitForCompletion) s = new Semaphore(); Process p = Runtime.getRuntime().exec(cmd); ProcessMonitor pMonitor = new ProcessMonitor(p, oAnalyzer, s); pMonitor.autoStart(autoStart); pMonitor.autoClose(autoClose); pMonitor.run(); s.waitForSignal(); } private void recordFromISOImageActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser fileChooser = new JFileChooser(applicationSettings.isoDiskImageDirectory()); int returnVal = fileChooser.showDialog(this, "Select ISO image"); if(returnVal == JFileChooser.APPROVE_OPTION) { CDRECORDOutputAnalyzer outputAnalyzer = new CDRECORDOutputAnalyzer(); outputAnalyzer.setExtractDevices(false); isoFileName = fileChooser.getSelectedFile().getAbsolutePath(); String cdrecordCmdStr = cdrecord.writeCDFromImageCommandStrUsing(isoFileName); try { executeCommandLine(cdrecordCmdStr, outputAnalyzer, true, false, true); } catch (IOException ie){ JOptionPane.showMessageDialog(this, "Error: Make sure cdrecord path is set correctly in preferences"); } } else { } } private void recordDirectlyToDisk(java.awt.event.ActionEvent evt) { if (virtualFileSystemPanel.isEmpty()) { JOptionPane.showMessageDialog(null, "Nothing in disk layout. Add some files and try again.", "No files in layout", JOptionPane.INFORMATION_MESSAGE); } else { String creatorID = System.getProperty("user.name"); creatorID = JOptionPane.showInputDialog("Enter creator ID", creatorID); if (creatorID != null && creatorID.length() != 0) { String preparerID = JOptionPane.showInputDialog("Enter preparor ID", creatorID); try { isoFileName = File.createTempFile("JCDW", ".iso").getAbsolutePath(); if (preparerID != null && preparerID.length() != 0) { String mkisofsCmdStr = mkisofs.writeImageCommandStrUsing(isoFileName, virtualFileSystemPanel.graftPoints(), virtualFileSystemPanel.excludedPaths()); try { Log.writeln("JCDWriter:recordDirect", mkisofsCmdStr, 3); executeCommandLine(mkisofsCmdStr, new MKISOFSOutputAnalyzer(), true, true, true); CDRECORDOutputAnalyzer outputAnalyzer = new CDRECORDOutputAnalyzer(); outputAnalyzer.setExtractDevices(false); String cdrecordCmdStr = cdrecord.writeCDFromImageCommandStrUsing(isoFileName); Log.writeln("JCDWriter:recordDirect", cdrecordCmdStr, 3); executeCommandLine(cdrecordCmdStr, outputAnalyzer, true, false, true); } catch (IOException ie){ JOptionPane.showMessageDialog(this, "Error: Make sure mkisofs and cdrecord paths are set correctly in preferences"); } } } catch (IOException ie){ System.out.println(ie);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -