jsmanager.java

来自「Java生成PDF Java生成PDF Java生成PDF」· Java 代码 · 共 532 行 · 第 1/2 页

JAVA
532
字号
        int val = ((Integer)pane.getValue()).intValue();        if (val==JOptionPane.OK_OPTION) {            return 1;        } else if (val==JOptionPane.CANCEL_OPTION) {            return 2;        } else if (val==JOptionPane.NO_OPTION) {            return 3;        } else if (val==JOptionPane.YES_OPTION) {            return 4;        } else {            return 0;        }    }    /**     * An implementation of the <code>App.response</code> JavaScript method     */    public String appResponse(String message, String cTitle, String cDefault, boolean bPassword, String cLabel) {        return (String)JOptionPane.showInputDialog(root, message, cTitle, JOptionPane.PLAIN_MESSAGE, null, null, cDefault);    }    //-----------------------------------------------------------------------------------    private boolean runEvent(DocumentPanel panel, JSEvent event) {        boolean ok = engine.runEvent(event);        PDFAction action = event.javaGetAction();        while (action!=null) {            if (action.getType()!="FormJavaScript") {                if (panel!=null) {                    ok = panel.runAction(action);                } else {                    ok = true;                }            }            action = action.getNext();        }        return ok;    }    private boolean isShift(InputEvent event) {        return event.isShiftDown();    }    private boolean isModifier(InputEvent event) {        try {            return (event.isControlDown() && System.getProperty("os.name").indexOf("Windows")>=0) ||                    (event.isMetaDown() && System.getProperty("os.name").indexOf("Windows")<0);        } catch (Throwable e) {            return event.isControlDown();        }    }    /**     * Raise the <code>App/Init</code> JavaScript method     */    public void runEventAppInit() {        synchronized(this) {            if (!initialized) {             // So we can only run this once per manager                initialized = true;                JSEvent event = JSEvent.createAppInit();                runEvent(null, event);                for (int i=0;i<initplugins.size();i++) {                    Object[] o = (Object[])initplugins.get(i);                    engine.bind((String)o[0], o[1], (String)o[2]);                }                initplugins = null;            }        }    }    /**     * Raise the <code>Batch/Exec</code> JavaScript method     */    public boolean runEventBatchExec(DocumentPanel panel, PDF pdf, String javascript) {        JSEvent event = JSEvent.createBatchExec(pdf, javascript);        return runEvent(panel, event);    }    /**     * Raise the <code>Bookmark/MouseUp</code> JavaScript method     */    public void runEventBookmarkMouseUp(DocumentPanel panel, PDFBookmark bookmark) {        JSEvent event = JSEvent.createBookmarkMouseUp(bookmark);        runEvent(panel, event);    }    /**     * Raise the <code>Console/Exec</code> JavaScript method     */    public void runEventConsoleExec(String javascript) {        JSEvent event = JSEvent.createConsoleExec(javascript);        runEvent(null, event);    }    /**     * Raise the <code>Doc/DidPrint</code> JavaScript method     */    public void runEventDocDidPrint(DocumentPanel panel) {        JSEvent event = JSEvent.createDocDidPrint(panel.getPDF());        runEvent(panel, event);    }    /**     * Raise the <code>Doc/DidSave</code> JavaScript method     */    public void runEventDocDidSave(DocumentPanel panel) {        JSEvent event = JSEvent.createDocDidSave(panel.getPDF());        runEvent(panel, event);    }    /**     * Raise the <code>Doc/Open</code> JavaScript method     */    public void runEventDocOpen(DocumentPanel panel, String targetName) {        docpanels.put(panel.getPDF(), panel);        JSEvent event = JSEvent.createDocOpen(panel.getPDF(), targetName);        runEvent(panel, event);    }    /**     * Raise the <code>Doc/WillClose</code> JavaScript method     */    public void runEventDocWillClose(DocumentPanel panel) {        docpanels.remove(panel.getPDF());        JSEvent event = JSEvent.createDocWillClose(panel.getPDF());        runEvent(panel, event);    }    /**     * Raise the <code>Doc/WillPrint</code> JavaScript method     */    public void runEventDocWillPrint(DocumentPanel panel) {        JSEvent event = JSEvent.createDocWillPrint(panel.getPDF());        runEvent(panel, event);    }    /**     * Raise the <code>Doc/WillSave</code> JavaScript method     */    public void runEventDocWillSave(DocumentPanel panel) {        JSEvent event = JSEvent.createDocWillSave(panel.getPDF());        runEvent(panel, event);    }    /**     * Raise the <code>External/Exec</code> JavaScript method     */    public void runEventExternalExec(DocumentPanel panel, String javascript) {        JSEvent event = JSEvent.createExternalExec(javascript);        runEvent(panel, event);    }    /**     * Raise the <code>Field/Blur</code> JavaScript method     */    public void runEventFieldBlur(DocumentPanel panel, WidgetAnnotation annot, boolean shift, boolean modifier) {        JSEvent event = JSEvent.createFieldBlur(annot, shift, modifier);        runEvent(panel, event);    }    /**     * Raise the <code>Field/Calculate</code> JavaScript method     */    public boolean runEventFieldCalculate(DocumentPanel panel, WidgetAnnotation target, WidgetAnnotation source) {        JSEvent event = JSEvent.createFieldCalculate(target, source);        return runEvent(panel, event);    }    /**     * Raise the <code>Field/Focus</code> JavaScript method     */    public void runEventFieldFocus(DocumentPanel panel, WidgetAnnotation annot, boolean shift, boolean modifier) {        JSEvent event = JSEvent.createFieldFocus(annot, shift, modifier);        runEvent(panel, event);    }    /**     * Raise the <code>Field/Format</code> JavaScript method     */    public void runEventFieldFormat(DocumentPanel panel, WidgetAnnotation annot, int commitKey, boolean willCommit) {        JSEvent event = JSEvent.createFieldFormat(annot, commitKey, willCommit);        runEvent(panel, event);    }    /**     * Raise the <code>Field/Keystroke</code> JavaScript method     */    public boolean runEventFieldKeystroke(DocumentPanel panel, WidgetAnnotation annot, int commitKey, String change, String changeEx, boolean fieldFull, boolean keyDown, boolean modifier, int selStart, int selEnd, boolean shift, String value, boolean willCommit) {        JSEvent event = JSEvent.createFieldKeystroke(annot, commitKey, change, changeEx, fieldFull, keyDown, modifier, selStart, selEnd, shift, value, willCommit);        return runEvent(panel, event);    }    /**     * Raise the <code>Field/Mouse Down</code> JavaScript method     */    public void runEventFieldMouseDown(DocumentPanel panel, WidgetAnnotation annot, MouseEvent mevent) {        boolean modifier = isModifier(mevent);        boolean shift = isShift(mevent);        JSEvent event = JSEvent.createFieldMouseDown(annot, shift, modifier);        runEvent(panel, event);    }    /**     * Raise the <code>Field/Mouse Enter</code> JavaScript method     */    public void runEventFieldMouseEnter(DocumentPanel panel, WidgetAnnotation annot, MouseEvent mevent) {        boolean modifier = isModifier(mevent);        boolean shift = isShift(mevent);        JSEvent event = JSEvent.createFieldMouseEnter(annot, shift, modifier);        runEvent(panel, event);    }    /**     * Raise the <code>Field/Mouse Exit</code> JavaScript method     */    public void runEventFieldMouseExit(DocumentPanel panel, WidgetAnnotation annot, MouseEvent mevent) {        boolean modifier = isModifier(mevent);        boolean shift = isShift(mevent);        JSEvent event = JSEvent.createFieldMouseExit(annot, shift, modifier);        runEvent(panel, event);    }    /**     * Raise the <code>Field/Mouse Up</code> JavaScript method     */    public void runEventFieldMouseUp(DocumentPanel panel, WidgetAnnotation annot, MouseEvent mevent) {        boolean modifier = isModifier(mevent);        boolean shift = isShift(mevent);        JSEvent event = JSEvent.createFieldMouseUp(annot, shift, modifier);        runEvent(panel, event);    }    /**     * Raise the <code>Field/Validate</code> JavaScript method     */    public boolean runEventFieldValidate(DocumentPanel panel, WidgetAnnotation annot, String value, boolean shift, boolean modifier, String change, String changeEx, boolean keyDown) {        JSEvent event = JSEvent.createFieldValidate(annot, value, shift, modifier, change, changeEx, keyDown);        return runEvent(panel, event);    }    /**     * Raise the <code>Link/Mouse Up</code> JavaScript method     */    public void runEventLinkMouseUp(DocumentPanel panel, AnnotationLink annot) {        JSEvent event = JSEvent.createLinkMouseUp(annot);        runEvent(panel, event);    }    /**     * Raise the <code>Page/Open</code> JavaScript method     */    public void runEventPageOpen(DocumentPanel panel, PDFPage page) {        JSEvent event = JSEvent.createPageOpen(page);        runEvent(panel, event);    }    /**     * Raise the <code>Page/Close</code> JavaScript method     */    public void runEventPageClose(DocumentPanel panel, PDFPage page) {        JSEvent event = JSEvent.createPageClose(page);        runEvent(panel, event);    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?