Revision 8711

View differences:

org.gvsig.pdf/trunk/org.gvsig.pdf/org.gvsig.pdf.app/org.gvsig.pdf.app.mainplugin/src/main/resources-plugin/config.xml
17 17
  <extensions>
18 18

  
19 19

  
20
    <extension class-name="org.gvsig.pdf.app.mainplugin.PDFExtension"
21
      description="" active="true" priority="1">
22
    </extension>
20
      <extension class-name="org.gvsig.pdf.app.mainplugin.PDFExtension"
21
                 description="" active="true" priority="1">
22
        
23
          <action
24
              name= "show-pdf"
25
              label="_Show_pdf"
26
              tooltip="_Show_pdf"
27
              action-command="show-pdf"
28
              icon="show-pdf"
29
              position="1"
30
              accelerator=""
31
          />
23 32

  
33
      </extension>
24 34

  
35

  
25 36
  </extensions>
26 37
</plugin-config>
org.gvsig.pdf/trunk/org.gvsig.pdf/org.gvsig.pdf.app/org.gvsig.pdf.app.mainplugin/src/main/java/org/gvsig/pdf/app/mainplugin/PDFExtension.java
23 23
 */
24 24
package org.gvsig.pdf.app.mainplugin;
25 25

  
26
import javax.swing.JOptionPane;
27
import org.apache.commons.lang3.StringUtils;
26 28
import org.gvsig.andami.plugins.Extension;
29
import org.gvsig.pdf.lib.api.PDFDocument;
30
import org.gvsig.pdf.lib.api.PDFLocator;
31
import org.gvsig.pdf.lib.api.PDFManager;
32
import org.gvsig.pdf.swing.api.PDFSwingLocator;
33
import org.gvsig.pdf.swing.api.PDFSwingManager;
34
import org.gvsig.pdf.swing.api.PDFViewer;
35
import org.gvsig.tools.ToolsLocator;
36
import org.gvsig.tools.arguments.Arguments;
37
import org.gvsig.tools.exception.BaseException;
38
import org.gvsig.tools.i18n.I18nManager;
39
import org.gvsig.tools.swing.api.ToolsSwingLocator;
40
import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
41
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
27 42

  
28 43
/**
29 44
 *
......
42 57

  
43 58
    @Override
44 59
    public void execute(String action) {
60
    }
45 61

  
62
    @Override
63
    public void execute(String command, Object[] args) {
64
        if(StringUtils.equalsIgnoreCase(command, "show-pdf")) {
65
            Arguments arguments = Arguments.create(args);
66
            String title = (String) arguments.get("title", "PDF");
67
            WindowManager.MODE mode = (WindowManager.MODE) arguments.get("mode", WindowManager.MODE.WINDOW);
68
            if(arguments.contains("pdfdoc")){
69
                PDFDocument pdfdoc = (PDFDocument) arguments.get("pdfdoc");
70
                showPdf(pdfdoc, title, mode);
71
                return;
72
            }
73
            if(arguments.contains("source")){
74
                Object source = arguments.get("source");
75
                showPdf(source, title, mode);
76
                return;
77
            }
78
        }
46 79
    }
80
    
81
    
47 82

  
48 83
    @Override
49 84
    public boolean isEnabled() {
50

  
51 85
        return true;
52 86
    }
53 87

  
54 88
    @Override
55 89
    public boolean isVisible() {
56
        return true;
90
        return false;
57 91
    }
58 92
    
93
    public void showPdf(Object source, String title, WindowManager.MODE mode) {
94
        PDFManager pdfManager = PDFLocator.getPDFManager();
95
        PDFDocument pdfDoc = pdfManager.createPDFDocument();
96
        pdfDoc.setSource(source);
97
        showPdf(pdfDoc, title, mode);
98
    }
99

  
100
    public void showPdf(PDFDocument pdfDoc, String title, WindowManager.MODE mode) {
101
        try {
102

  
103
            final PDFSwingManager pdfSwingManager = PDFSwingLocator.getPDFSwingManager();
104
            PDFViewer viewer = pdfSwingManager.createPDFViewer();
105
            viewer.put(pdfDoc);
106
            viewer.setMode(PDFViewer.MODE_LIGHT);
107
            WindowManager winManager = ToolsSwingLocator.getWindowManager();
108
            winManager.showWindow(viewer.asJComponent(), title, mode);
109
        } catch (Exception ex) {
110
            logger.warn("Can't show Pdf.'", ex);
111
            I18nManager i18n = ToolsLocator.getI18nManager();
112
            ThreadSafeDialogsManager dialogs = ToolsSwingLocator.getThreadSafeDialogsManager();
113
            dialogs.messageDialog(
114
                    i18n.getTranslation("_Cant_show_pdf") + ")\n\n" + BaseException.getMessageStack(ex, 0),
115
                    i18n.getTranslation("_Show_pdf"),
116
                    JOptionPane.WARNING_MESSAGE
117
            );
118
        }
119

  
120
    }
59 121
}

Also available in: Unified diff