📄 actioneditor.java
字号:
ScriptInterpreter interp = Context.getScriptInterpreter (); script = new TextArea (4,40); if (interp != null) { add (ActionFeatureChoice.SCRIPT_ACTION, panel = Constrain.makeConstrainedPanel (1, 2)); Constrain.add (panel, new Label (interp.getLanguage() + " Function (crawler, page)"), Constrain.labelLike (0, 0)); Constrain.add (panel, script, Constrain.areaLike (0, 1)); } else { add (ActionFeatureChoice.SCRIPT_ACTION, panel = Constrain.makeConstrainedPanel (1, 1)); Constrain.add (panel, new Label ("No scripting language is available."), Constrain.labelLike (0, 0)); } } public boolean handleEvent (Event event) { if (event.id == Event.ACTION_EVENT) { if (event.target == browseMirrorDirectory) browse ("Save Pages in Directory", mirrorDirectory); else if (event.target == browseConcatFilename) browse ("Save Concatenation As", concatFilename); else if (event.target == browseExtractFilename) browse ("Save Extracts As", extractFilename); else if (event.target == optionsButton) new ConcatOptions(this).show (); else return super.handleEvent (event); } else return super.handleEvent (event); return true; } void browse (String title, TextField target) { String fn = PopupDialog.askFilename (this, title, target.getText(), false); if (fn != null) target.setText (fn); } public void setColor (String color) { this.color.select (color); } public String getColor () { return color.getSelectedItem (); } public void setScale (String scale) { try { double d = Double.valueOf (scale).doubleValue(); // FIX: allow user to enter any scale factor ? if (d < 1) this.scale.select ("small"); else if (d > 1) this.scale.select ("large"); else this.scale.select ("normal"); } catch (NumberFormatException e) { this.scale.select ("normal"); } } public String getScale () { switch (scale.getSelectedIndex()) { case 0: return "0.5"; case 2: return "2.0"; default: return "1.0"; } } public void setIcon (String icon) { //this.icon.select (color); } public String getIcon () { return null; //return icon.getSelectedItem (); } public void setMirrorDirectory (String directory) { mirrorDirectory.setText (directory != null ? directory : TEMPORARY_DIR); } public String getMirrorDirectory () { String f = mirrorDirectory.getText (); return f.equals (TEMPORARY_DIR) ? null : f; } public void setMirrorUseBrowser (boolean use) { mirrorUseBrowser.setState (use); } public boolean getMirrorUseBrowser () { return mirrorUseBrowser.getState (); } public void setConcatFilename (String filename) { concatFilename.setText (filename != null ? filename : TEMPORARY_FILE); } public String getConcatFilename () { String f = concatFilename.getText (); return f.equals (TEMPORARY_FILE) ? null : f; } public void setConcatUseBrowser (boolean use) { concatUseBrowser.setState (use); } public boolean getConcatUseBrowser () { return concatUseBrowser.getState (); } public void setExtractFilename (String filename) { extractFilename.setText (filename != null ? filename : TEMPORARY_FILE); } public String getExtractFilename () { String f = extractFilename.getText (); return f.equals (TEMPORARY_FILE) ? null : f; } public void setExtractUseBrowser (boolean use) { extractUseBrowser.setState (use); } public boolean getExtractUseBrowser () { return extractUseBrowser.getState (); } public void setExtractPattern (String pattern) { extractPattern.setText (pattern); } public String getExtractPattern () { return extractPattern.getText (); } public void setTextOnly (boolean f) { extractMedium.select (f ? "text" : "HTML"); } public boolean getTextOnly () { return extractMedium.getSelectedItem().equals ("text"); } public void setScript (String script) { this.script.setText (script); } public String getScript () { return script.getText (); }}class ConcatOptions extends PopupDialog { ActionFeatureArgs e; TextArea prolog, header, footer, divider, epilog; Button applyButton; Button okButton; Button cancelButton; public ConcatOptions (ActionFeatureArgs e) { super (getFrame (e), "Concatenate Options", true); this.e = e; setLayout (new GridBagLayout ()); Constrain.add (this, new Label ("Prolog:"), Constrain.labelLike (0, 0)); Constrain.add (this, prolog = new TextArea (e.prolog, 3, 40), Constrain.areaLike (1, 0)); Constrain.add (this, new Label ("Page Header:"), Constrain.labelLike (0, 1)); Constrain.add (this, header = new TextArea (e.header, 3, 40), Constrain.areaLike (1, 1)); Constrain.add (this, new Label ("Page Footer:"), Constrain.labelLike (0, 2)); Constrain.add (this, footer = new TextArea (e.footer, 3, 40), Constrain.areaLike (1, 2)); Constrain.add (this, new Label ("Page Divider:"), Constrain.labelLike (0, 3)); Constrain.add (this, divider = new TextArea (e.divider, 3, 40), Constrain.areaLike (1, 3)); Constrain.add (this, new Label ("Epilog:"), Constrain.labelLike (0, 4)); Constrain.add (this, epilog = new TextArea (e.epilog, 3, 40), Constrain.areaLike (1, 4)); Panel panel; Constrain.add (this, panel = new Panel(), Constrain.centered (Constrain.labelLike (0, 5, 2))); panel.add (applyButton = new Button ("Apply")); panel.add (okButton = new Button ("OK")); panel.add (cancelButton = new Button ("Cancel")); pack (); } void writeBack () { e.prolog = prolog.getText(); e.header = header.getText(); e.footer = footer.getText(); e.divider = divider.getText(); e.epilog = epilog.getText(); } public boolean handleEvent (Event event) { if (event.id == Event.ACTION_EVENT) { if (event.target == applyButton) writeBack (); else if (event.target == okButton) { writeBack (); close (); } else if (event.target == cancelButton) close (); else return super.handleEvent (event); } else return super.handleEvent (event); return true; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -