< prev index next >

src/jdk.scripting.nashorn.shell/share/classes/jdk/nashorn/tools/jjs/EditObject.java

Print this page




  69     public String toString() {
  70         return "function edit() { [native code] }";
  71     }
  72 
  73     @Override
  74     public Set<String> keySet() {
  75         return props;
  76     }
  77 
  78     @Override
  79     public Object getMember(final String name) {
  80         if (name.equals("editor")) {
  81             return editor;
  82         }
  83         return UNDEFINED;
  84     }
  85 
  86     @Override
  87     public void setMember(final String name, final Object value) {
  88         if (name.equals("editor")) {
  89             this.editor = JSType.toString(value);
  90         }
  91     }
  92 
  93     // called whenever user 'saves' script in editor
  94     class SaveHandler implements Consumer<String> {
  95          private String lastStr; // last seen code
  96 
  97          SaveHandler(final String str) {
  98              this.lastStr = str;
  99          }
 100 
 101          @Override
 102          public void accept(final String str) {
 103              // ignore repeated save of the same code!
 104              if (! str.equals(lastStr)) {
 105                  this.lastStr = str;
 106                  // evaluate the new code
 107                  evaluator.accept(str);
 108              }
 109          }
 110     }
 111 
 112     @Override
 113     public Object call(final Object thiz, final Object... args) {
 114         final String initText = args.length > 0? JSType.toString(args[0]) : "";
 115         final SaveHandler saveHandler = new SaveHandler(initText);
 116         if (editor != null && !editor.isEmpty()) {
 117             ExternalEditor.edit(editor, errorHandler, initText, saveHandler, console);
 118         } else {
 119             EditPad.edit(errorHandler, initText, saveHandler);


 120         }
 121         return UNDEFINED;
 122     }
 123 
 124     @Override
 125     public boolean isFunction() {
 126         return true;
 127     }
 128 }


  69     public String toString() {
  70         return "function edit() { [native code] }";
  71     }
  72 
  73     @Override
  74     public Set<String> keySet() {
  75         return props;
  76     }
  77 
  78     @Override
  79     public Object getMember(final String name) {
  80         if (name.equals("editor")) {
  81             return editor;
  82         }
  83         return UNDEFINED;
  84     }
  85 
  86     @Override
  87     public void setMember(final String name, final Object value) {
  88         if (name.equals("editor")) {
  89             this.editor = value != null && value != UNDEFINED? JSType.toString(value) : "";
  90         }
  91     }
  92 
  93     // called whenever user 'saves' script in editor
  94     class SaveHandler implements Consumer<String> {
  95          private String lastStr; // last seen code
  96 
  97          SaveHandler(final String str) {
  98              this.lastStr = str;
  99          }
 100 
 101          @Override
 102          public void accept(final String str) {
 103              // ignore repeated save of the same code!
 104              if (! str.equals(lastStr)) {
 105                  this.lastStr = str;
 106                  // evaluate the new code
 107                  evaluator.accept(str);
 108              }
 109          }
 110     }
 111 
 112     @Override
 113     public Object call(final Object thiz, final Object... args) {
 114         final String initText = args.length > 0? JSType.toString(args[0]) : "";
 115         final SaveHandler saveHandler = new SaveHandler(initText);
 116         if (editor != null && !editor.isEmpty()) {
 117             ExternalEditor.edit(editor, errorHandler, initText, saveHandler, console);
 118         } else if (! Main.HEADLESS) {
 119             EditPad.edit(errorHandler, initText, saveHandler);
 120         } else {
 121             errorHandler.accept(Main.getMessage("no.editor"));
 122         }
 123         return UNDEFINED;
 124     }
 125 
 126     @Override
 127     public boolean isFunction() {
 128         return true;
 129     }
 130 }
< prev index next >