Changeset 12336
- Timestamp:
- 2006-07-28T15:08:13+12:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/gui/ExportAsPrompt.java
r12119 r12336 41 41 import java.io.*; 42 42 import java.util.ArrayList; 43 import java.util.HashMap; 43 44 import javax.swing.*; 44 45 import javax.swing.event.*; 46 45 47 import org.greenstone.gatherer.Configuration; 46 48 import org.greenstone.gatherer.DebugStream; … … 52 54 import org.greenstone.gatherer.shell.GShellEvent; 53 55 import org.greenstone.gatherer.shell.GShellListener; 56 import org.greenstone.gatherer.shell.GDefaultProgressMonitor; 54 57 import org.greenstone.gatherer.util.ArrayTools; 55 58 import org.greenstone.gatherer.util.CheckList; … … 111 114 private StringBuffer error_message = null; 112 115 /** The size of the export prompt screen. */ 113 public static final Dimension SIZE = new Dimension(500, 500); 116 public static final Dimension SIZE = new Dimension(500, 520); 117 private GDefaultProgressMonitor progress_monitor; 118 119 private JButton convert_xml_button1 = null; 120 private JButton convert_xml_button2 = null; 121 122 private JPanel instructions_pane = null; 123 124 private JPanel convert_xml_pane1 = null; 125 private JPanel convert_xml_pane2 = null; 126 127 private JCheckBox convert_xml_checkbox1 = null; 128 private JCheckBox convert_xml_checkbox2 = null; 129 130 private JCheckBox output_single_checkbox = null; 131 132 private JTextField convert_xml_field1 = null; 133 private JTextField convert_xml_field2 = null; 134 135 private File xsl_file1 = null; 136 private File xsl_file2 = null; 137 138 private JPanel convert_xml_pane = null; 139 140 private HashMap plugoutMap = new HashMap(); 141 114 142 115 143 /** Constructor. … … 120 148 public ExportAsPrompt() { 121 149 super(Gatherer.g_man, true); 122 cancel_button = new GLIButton(Dictionary.get("General.Close"), Dictionary.get("General.Close_Tooltip")); 150 151 plugoutMap.clear(); 152 plugoutMap.put("DSpace","dublin-core.xml"); 153 plugoutMap.put("MARCXML","doc.xml"); 154 plugoutMap.put("METS","doctxt.xml,docmets.xml"); 155 plugoutMap.put("GA","doc.xml"); 156 157 cancel_button = new GLIButton(Dictionary.get("General.Close"), Dictionary.get("General.Close_Tooltip")); 123 158 124 159 details_textarea = new JTextArea(Dictionary.get("DeleteCollectionPrompt.No_Collection")); … … 135 170 instructions_textarea.setWrapStyleWord(true); 136 171 172 137 173 // Save As 138 ArrayList saveas_formats = new ArrayList(); 139 saveas_formats.add("METS"); 140 saveas_formats.add("DSpace"); 141 174 ArrayList saveas_formats = new ArrayList(plugoutMap.keySet()); 175 142 176 saveas_label = new JLabel(Dictionary.get("ExportAsPrompt.SaveAs") 143 177 ); … … 147 181 saveas_combobox.setToolTipText(Dictionary.get("ExportAsPrompt.SaveAs_Tooltip")); 148 182 183 184 // Add xml conversion feature 185 convert_xml_button1 = new GLIButton(Dictionary.get("ExportAsPrompt.Browse"),Dictionary.get("ExportAsPrompt.Browse_Tooltip")); 186 convert_xml_button1.setEnabled(false); 187 188 // Add xml conversion feature 189 convert_xml_button2 = new GLIButton(Dictionary.get("ExportAsPrompt.Browse"),Dictionary.get("ExportAsPrompt.Browse_Tooltip")); 190 convert_xml_button2.setEnabled(false); 191 192 convert_xml_checkbox1 = new JCheckBox(); 193 convert_xml_checkbox1.setText(Dictionary.get("ExportAsPrompt.ApplyXSL","doc.xml")); 194 convert_xml_checkbox1.setToolTipText(Dictionary.get("ExportAsPrompt.ApplyXSL_Tooltip")); 195 196 convert_xml_checkbox2 = new JCheckBox(); 197 convert_xml_checkbox2.setToolTipText(Dictionary.get("ExportAsPrompt.ApplyXSL_Tooltip")); 198 199 output_single_checkbox = new JCheckBox(); 200 output_single_checkbox.setText(Dictionary.get("ExportAsPrompt.MARCXMLGroup")); 201 output_single_checkbox.setToolTipText(Dictionary.get("ExportAsPrompt.MARCXMLGroup_Tooltip")); 202 203 convert_xml_field1 = new JTextField(); 204 convert_xml_field2 = new JTextField(); 205 206 convert_xml_pane1 = new JPanel(new BorderLayout()); 207 208 convert_xml_pane2 = new JPanel(new BorderLayout()); 209 210 convert_xml_pane = new JPanel(new GridLayout(2,1)); 149 211 150 212 all_collections = new ArrayList(); … … 174 236 ok_button.setEnabled(false); 175 237 //title.getDocument().addDocumentListener(new DocumentListener()); 238 239 convert_xml_button1.addActionListener(new ConvertXMLButtonListener()); 240 convert_xml_checkbox1.addActionListener(new ConvertXMLCheckboxListener()); 241 242 convert_xml_button2.addActionListener(new ConvertXMLButtonListener()); 243 convert_xml_checkbox2.addActionListener(new ConvertXMLCheckboxListener()); 244 245 saveas_combobox.addActionListener(new SaveasListener()); 246 176 247 } 177 248 … … 200 271 public boolean display() { 201 272 // Top pane 202 JPanelinstructions_pane = new JPanel(new BorderLayout());203 instructions_pane.setBorder(BorderFactory.createEmptyBorder(0,0,5, 0));273 instructions_pane = new JPanel(new BorderLayout()); 274 instructions_pane.setBorder(BorderFactory.createEmptyBorder(0,0,5,5)); 204 275 instructions_pane.add(new JScrollPane(instructions_textarea), BorderLayout.CENTER); 205 276 … … 209 280 title_pane.add(title_label, BorderLayout.WEST); 210 281 title_pane.add(title_field, BorderLayout.CENTER); 211 instructions_pane.add(title_pane, BorderLayout.CENTER); 212 213 // Save as pane 282 283 //apply xsl pane 284 285 convert_xml_pane1.removeAll(); 286 convert_xml_pane2.removeAll(); 287 convert_xml_pane.removeAll(); 288 289 convert_xml_pane1.add(convert_xml_checkbox1, BorderLayout.WEST); 290 convert_xml_pane1.add(convert_xml_field1, BorderLayout.CENTER); 291 convert_xml_pane1.add(convert_xml_button1, BorderLayout.EAST); 292 293 convert_xml_pane2.add(convert_xml_checkbox2, BorderLayout.WEST); 294 convert_xml_pane2.add(convert_xml_field2, BorderLayout.CENTER); 295 convert_xml_pane2.add(convert_xml_button2, BorderLayout.EAST); 296 297 convert_xml_pane.add(convert_xml_pane1); 298 299 String saveas = (String)saveas_combobox.getSelectedItem(); 300 if (saveas.equals("MARCXML")){ 301 convert_xml_pane.add(output_single_checkbox); 302 } 303 else{ 304 if (saveas.equals("METS")){ 305 convert_xml_pane.add(convert_xml_pane2); 306 } 307 } 308 convert_xml_pane.revalidate(); 309 convert_xml_pane.repaint(); 310 311 // Save as pane 214 312 JPanel saveas_pane = new JPanel(new BorderLayout()); 215 saveas_ pane.setLayout(new BorderLayout());313 saveas_label.setBorder(BorderFactory.createEmptyBorder(0,5,0,15)); 216 314 saveas_pane.add(saveas_label, BorderLayout.WEST); 217 315 saveas_pane.add(saveas_combobox, BorderLayout.CENTER); 218 instructions_pane.add(saveas_pane, BorderLayout.SOUTH); 316 317 JPanel tmp_pane = new JPanel(new BorderLayout()); 318 tmp_pane.add(saveas_pane, BorderLayout.WEST); 319 tmp_pane.add(title_pane, BorderLayout.CENTER); 320 321 instructions_pane.add(tmp_pane, BorderLayout.NORTH); 322 323 instructions_pane.add(convert_xml_pane, BorderLayout.CENTER); 219 324 220 325 // Central pane … … 280 385 281 386 String export_type = (String) saveas_combobox.getSelectedItem(); 282 387 283 388 // Generate the export.pl command 284 389 ArrayList command_parts_list = new ArrayList(); … … 296 401 command_parts_list.add("-exportdir"); 297 402 String export_dir = LocalGreenstone.getTmpDirectoryPath(); 298 if (cd_title.equals("")) {403 if (cd_title.equals("")) { 299 404 export_dir += "exported_" + export_type; 300 405 } … … 304 409 command_parts_list.add(export_dir); 305 410 306 411 if (!export_type.equals("METS") && xsl_file1 !=null){ 412 command_parts_list.add("-xsltfile"); 413 command_parts_list.add(xsl_file1.getPath()); 414 } 415 416 if (xsl_file1 == null && export_type.equals("MARCXML")){ 417 command_parts_list.add("-xsltfile"); 418 //TODO: need to change once we have a place to store doc2marc.xsl and mapping.xml 419 command_parts_list.add(Configuration.gsdl_path+"etc"+File.separator+"dc2marc.xsl"); 420 } 421 422 if (export_type.equals("MARCXML") && output_single_checkbox.isSelected()){ 423 command_parts_list.add("-group_marc"); 424 } 425 426 if (export_type.equals("METS") && xsl_file1 !=null){ 427 command_parts_list.add("-xslt_txt"); 428 command_parts_list.add(xsl_file1.getPath()); 429 } 430 431 if (export_type.equals("METS") && xsl_file2 !=null){ 432 command_parts_list.add("-xslt_mets"); 433 command_parts_list.add(xsl_file2.getPath()); 434 } 435 307 436 for (int i = 0; i < num_collections; i++) { 308 437 command_parts_list.add(((BasicCollectionConfiguration) selected_collections.get(i)).getShortName()); … … 310 439 311 440 DebugStream.print("export command = "); 312 441 for (int i = 0; i < command_parts_list.size(); i++) { 313 442 DebugStream.print(command_parts_list.get(i) + " "); 314 System.err.print(command_parts_list.get(i) + " ");443 //System.err.print(command_parts_list.get(i) + " "); 315 444 } 316 445 DebugStream.println(""); 317 System.err.println("");446 //System.err.println(""); 318 447 319 448 // Run the export.pl command 320 449 String[] command_parts = (String[]) command_parts_list.toArray(new String[0]); 321 GShell process = new GShell(command_parts, GShell.EXPORTAS, 3, this, null, GShell.GSHELL_EXPORTAS); 450 451 progress_monitor = new GDefaultProgressMonitor(); 452 453 GShell process = new GShell(command_parts, GShell.EXPORTAS, 3, this,progress_monitor , GShell.GSHELL_EXPORTAS); 322 454 process.start(); 323 455 //process.run(); … … 325 457 326 458 } 459 460 461 public void cancelExporting(){ 462 progress_monitor.setStop(true); 463 } 464 327 465 328 466 /** Shows an export complete prompt. … … 523 661 ///ystem.err.println("Process complete"); 524 662 // Dispose of progress dialog 663 664 525 665 progress_dialog.setVisible(false); 526 666 progress_dialog.dispose(); … … 540 680 } 541 681 error_message = null; 682 683 convert_xml_button1.setEnabled(false); 684 xsl_file1 = null; 685 convert_xml_field1.setText(""); 686 convert_xml_checkbox1.setSelected(false); 687 688 convert_xml_button2.setEnabled(false); 689 xsl_file2 = null; 690 convert_xml_field2.setText(""); 691 convert_xml_checkbox2.setSelected(false); 542 692 } 543 693 … … 545 695 extends ModalDialog { 546 696 547 private Dimension size = new Dimension(400, 65);697 private Dimension size = new Dimension(400,110); 548 698 549 699 public ProgressDialog() { … … 557 707 progress_bar.setIndeterminate(true); 558 708 content_pane.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); 559 content_pane.setLayout(new BorderLayout()); 709 GLIButton cancel_button = new GLIButton(Dictionary.get("ExportAsPrompt.Cancel"),Dictionary.get("ExportAsPrompt.Cancel_Tooltip")); 710 cancel_button.setMnemonic(KeyEvent.VK_C); 711 712 cancel_button.addActionListener(new ActionListener(){ 713 public void actionPerformed(ActionEvent e){ 714 cancelExporting(); 715 } 716 717 }); 718 719 JPanel cancel_panel = new JPanel(new FlowLayout(FlowLayout.CENTER,0,0)); 720 cancel_panel.add(cancel_button); 721 722 content_pane.setLayout(new BorderLayout(0,5)); 560 723 content_pane.add(progress_label, BorderLayout.NORTH); 561 724 content_pane.add(progress_bar, BorderLayout.CENTER); 725 content_pane.add(cancel_panel, BorderLayout.SOUTH); 726 562 727 // Position 563 728 Rectangle frame_bounds = Gatherer.g_man.getBounds(); … … 567 732 } 568 733 734 private class ConvertXMLCheckboxListener implements ActionListener { 735 public void actionPerformed(ActionEvent event) { 736 if(convert_xml_checkbox1.isSelected() == true) 737 { 738 convert_xml_button1.setEnabled(true); 739 740 } 741 742 if (convert_xml_checkbox2.isSelected() == true) 743 { 744 convert_xml_button2.setEnabled(true); 745 746 } 747 748 } 749 } 750 751 752 753 private class SaveasListener implements ActionListener { 754 755 public void actionPerformed(ActionEvent event) { 756 757 convert_xml_checkbox1.setSelected(false); 758 convert_xml_checkbox2.setSelected(false); 759 output_single_checkbox.setSelected(false); 760 761 convert_xml_button1.setEnabled(false); 762 convert_xml_button2.setEnabled(false); 763 764 convert_xml_field1.setText(""); 765 convert_xml_field2.setText(""); 766 767 String saveas = (String)saveas_combobox.getSelectedItem(); 768 769 if (convert_xml_pane.getComponentCount() > 1){ 770 convert_xml_pane.remove(1); 771 } 772 773 if (!saveas.equals("METS")){ 774 775 convert_xml_checkbox1.setText(Dictionary.get("ExportAsPrompt.ApplyXSL",(String)plugoutMap.get(saveas))); 776 if (saveas.equals("MARCXML")){ 777 convert_xml_pane.add(output_single_checkbox); 778 } 779 } 780 else{ 781 String[] docs = ((String)plugoutMap.get(saveas)).split(","); 782 convert_xml_checkbox1.setText(Dictionary.get("ExportAsPrompt.ApplyXSL",docs[0])); 783 convert_xml_checkbox2.setText(Dictionary.get("ExportAsPrompt.ApplyXSL",docs[1])); 784 convert_xml_pane.add(convert_xml_pane2); 785 } 786 787 convert_xml_pane.revalidate(); 788 convert_xml_pane.repaint(); 789 instructions_pane.revalidate(); 790 instructions_pane.repaint(); 791 792 } 793 794 } 795 796 private class ConvertXMLButtonListener implements ActionListener { 797 public void actionPerformed(ActionEvent event) { 798 JFileChooser chooser = new JFileChooser(); 799 // Note: source for ExampleFileFilter can be found in FileChooserDemo, 800 // under the demo/jfc directory in the Java 2 SDK, Standard Edition. 801 javax.swing.filechooser.FileFilter filter = new javax.swing.filechooser.FileFilter(){ 802 public boolean accept(File f){ 803 return f.getPath().endsWith(".xsl")||f.isDirectory(); 804 } 805 806 public String getDescription(){ 807 return "XSL file"; 808 } 809 }; 810 811 chooser.setFileFilter(filter); 812 int returnVal = chooser.showOpenDialog(prompt); 813 814 if(returnVal == JFileChooser.APPROVE_OPTION) { 815 if (event.getSource() == convert_xml_button1){ 816 817 xsl_file1 = chooser.getSelectedFile(); 818 convert_xml_field1.setText(xsl_file1.getPath()); 819 } 820 else{ 821 xsl_file2 = chooser.getSelectedFile(); 822 convert_xml_field2.setText(xsl_file2.getPath()); 823 } 824 825 } 826 } 827 } 569 828 570 829 }
Note:
See TracChangeset
for help on using the changeset viewer.