📄 actioneditor.java
字号:
/* * WebSPHINX web crawling toolkit * Copyright (C) 1998,1999 Carnegie Mellon University * * This library is free software; you can redistribute it * and/or modify it under the terms of the GNU Library * General Public License as published by the Free Software * Foundation, version 2. * * WebSPHINX homepage: http://www.cs.cmu.edu/~rcm/websphinx/ */package websphinx.workbench;import java.awt.*;import websphinx.*;import websphinx.util.Constrain;import websphinx.util.PopupDialog;// FIX: consider implementing java.beans.PropertyEditorpublic class ActionEditor extends Panel { ActionFeatureChoice choice; /** * Make a ActionEditor. */ public ActionEditor () { setLayout (new GridBagLayout ()); choice = new ActionFeatureChoice (); Constrain.add (this, choice, Constrain.labelLike (0, 0)); Constrain.add (this, choice.getArgs(), Constrain.areaLike (0, 1)); setAction (null); } public void setAction (Action act) { choice.setAction (act); } public Action getAction () { return choice.getAction (); }}class ActionFeatureChoice extends FeatureChoice { ActionFeatureArgs args = new ActionFeatureArgs (); final static String NULL_ACTION = "none"; final static String HIGHLIGHT_ACTION = "highlight"; final static String MIRROR_ACTION = "save"; final static String CONCAT_ACTION = "concatenate"; final static String EXTRACT_ACTION = "extract"; final static String SCRIPT_ACTION = "script"; public ActionFeatureChoice () { addItem (NULL_ACTION); addItem (MIRROR_ACTION); addItem (CONCAT_ACTION); addItem (EXTRACT_ACTION); addItem (HIGHLIGHT_ACTION); addItem (SCRIPT_ACTION); } public void setAction (Action act) { if (act == null) { select (NULL_ACTION); } else if (act instanceof HighlightAction) { HighlightAction highlight = (HighlightAction)act; select (HIGHLIGHT_ACTION); args.setColor (highlight.getColor ()); args.setScale (highlight.getScale ()); args.setIcon (highlight.getIcon ()); } else if (act instanceof MirrorAction) { MirrorAction mirror = (MirrorAction)act; select (MIRROR_ACTION); args.setMirrorDirectory (mirror.getDirectory ()); args.setMirrorUseBrowser (mirror.getUseBrowser ()); } else if (act instanceof ConcatAction) { ConcatAction concat = (ConcatAction)act; select (CONCAT_ACTION); args.setConcatFilename (concat.getFilename ()); args.setConcatUseBrowser (concat.getUseBrowser ()); args.prolog = concat.prolog != null ? concat.prolog : Concatenator.defaultProlog; args.header = concat.header != null ? concat.header : Concatenator.defaultHeader; args.footer = concat.footer != null ? concat.footer : Concatenator.defaultFooter; args.divider = concat.divider != null ? concat.divider : Concatenator.defaultDivider; args.epilog = concat.epilog != null ? concat.epilog : Concatenator.defaultEpilog; } else if (act instanceof ExtractAction) { ExtractAction extract = (ExtractAction)act; select (EXTRACT_ACTION); args.setExtractFilename (extract.getFilename ()); args.setExtractUseBrowser (extract.getUseBrowser ()); args.setExtractPattern (extract.getPattern ().toString ()); args.setTextOnly (extract.getTextOnly ()); } else if (act instanceof Script) { Script script = (Script)act; select (SCRIPT_ACTION); args.setScript (script.getScript ()); } else { select (NULL_ACTION); } } public Panel getArgs () { return args; } public Action getAction () { String actn = getSelectedItem (); if (actn.equals (HIGHLIGHT_ACTION)) return new HighlightAction (args.getColor (), args.getScale (), args.getIcon ()); else if (actn.equals (MIRROR_ACTION)) return new MirrorAction (args.getMirrorDirectory (), args.getMirrorUseBrowser ()); else if (actn.equals (CONCAT_ACTION)) return new ConcatAction (args.getConcatFilename (), args.getConcatUseBrowser (), args.prolog, args.header, args.footer, args.divider, args.epilog); else if (actn.equals (EXTRACT_ACTION)) return new ExtractAction (new Tagexp (args.getExtractPattern()), args.getExtractUseBrowser (), args.getExtractFilename (), args.getTextOnly ()); else if (actn.equals (SCRIPT_ACTION)) return new Script (args.getScript (), false); else return null; }}class ActionFeatureArgs extends Panel { static final String TEMPORARY_DIR = "(temporary directory)"; static final String TEMPORARY_FILE = "(temporary file)"; Choice color; Choice scale; //Choice icon; TextField mirrorDirectory; Checkbox mirrorUseBrowser; TextField concatFilename; Checkbox concatUseBrowser; Button optionsButton; String prolog = Concatenator.defaultProlog; String header = Concatenator.defaultHeader; String footer = Concatenator.defaultFooter; String divider = Concatenator.defaultDivider; String epilog = Concatenator.defaultEpilog; TextField extractFilename; TextArea extractPattern; Choice extractMedium; Checkbox extractUseBrowser; TextArea script; Button browseMirrorDirectory; Button browseConcatFilename; Button browseExtractFilename; public ActionFeatureArgs () { Panel panel; setLayout (new CardLayout ()); add (ActionFeatureChoice.NULL_ACTION, panel = new Panel ()); add (ActionFeatureChoice.HIGHLIGHT_ACTION, panel = Constrain.makeConstrainedPanel (4, 1)); Constrain.add (panel, new Label (" with color "), Constrain.labelLike (0, 0)); Constrain.add (panel, color = new Choice (), Constrain.fieldLike (1, 0)); color.addItem ("black"); color.addItem ("blue"); color.addItem ("cyan"); color.addItem ("green"); color.addItem ("magenta"); color.addItem ("orange"); color.addItem ("pink"); color.addItem ("red"); color.addItem ("white"); color.addItem ("yellow"); color.select ("blue"); scale = new Choice (); /*Constrain.add (panel, new Label (" and scale "), Constrain.labelLike (2, 0)); Constrain.add (panel, scale, Constrain.fieldLike (3, 0)); scale.addItem ("small"); scale.addItem ("normal"); scale.addItem ("large"); scale.select ("normal");*/ // NIY: icon //Constrain.add (panel, new Label (" and icon "), Constrain.labelLike (4, 0)); //Constrain.add (panel, icon = new Choice (), Constrain.fieldLike (5, 0)); add (ActionFeatureChoice.MIRROR_ACTION, panel = Constrain.makeConstrainedPanel (3, 2)); Constrain.add (panel, new Label ("to directory: "), Constrain.labelLike (0, 0)); Constrain.add (panel, mirrorDirectory = new TextField(), Constrain.fieldLike (1, 0)); Constrain.add (panel, browseMirrorDirectory = new Button ("..."), Constrain.labelLike (2, 0)); mirrorUseBrowser = new Checkbox ("Display directory in browser"); mirrorUseBrowser.setState (true); if (Context.getBrowser() != null) { mirrorDirectory.setText (TEMPORARY_DIR); Constrain.add (panel, mirrorUseBrowser, Constrain.labelLike (1, 1)); } add (ActionFeatureChoice.CONCAT_ACTION, panel = Constrain.makeConstrainedPanel (4, 2)); Constrain.add (panel, new Label ("to file: "), Constrain.labelLike (0, 0)); Constrain.add (panel, concatFilename = new TextField(), Constrain.fieldLike (1, 0, 2)); Constrain.add (panel, browseConcatFilename = new Button ("..."), Constrain.labelLike (3, 0)); concatUseBrowser = new Checkbox ("Display in browser"); concatUseBrowser.setState (true); if (Context.getBrowser() != null) { concatFilename.setText (TEMPORARY_FILE); Constrain.add (panel, concatUseBrowser, Constrain.labelLike (1, 1)); } Constrain.add (panel, optionsButton = new Button ("Options..."), Constrain.labelLike (2, 1)); add (ActionFeatureChoice.EXTRACT_ACTION, panel = Constrain.makeConstrainedPanel (5, 4)); Constrain.add (panel, new Label ("regions matching the HTML tag expression:"), Constrain.labelLike (0, 0, 5)); Constrain.add (panel, extractPattern = new TextArea(3, 40), Constrain.fieldLike (0, 1, 5)); Constrain.add (panel, new Label ("as"), Constrain.labelLike (0, 2)); Constrain.add (panel, extractMedium = new Choice (), Constrain.labelLike (1, 2)); extractMedium.addItem ("HTML"); extractMedium.addItem ("text"); Constrain.add (panel, new Label ("to file: "), Constrain.labelLike (2, 2)); Constrain.add (panel, extractFilename = new TextField(), Constrain.fieldLike (3, 2)); Constrain.add (panel, browseExtractFilename = new Button ("..."), Constrain.labelLike (4, 2)); extractUseBrowser = new Checkbox ("Display in browser"); extractUseBrowser.setState (true); if (Context.getBrowser() != null) { extractFilename.setText (TEMPORARY_FILE); Constrain.add (panel, extractUseBrowser, Constrain.labelLike (3, 3)); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -