diff options
Diffstat (limited to 'sca-java-2.x/tags/2.0-Beta2-RC1/modules/shell/src/main/java/org/apache/tuscany/sca/shell/jline/JLine.java')
-rw-r--r-- | sca-java-2.x/tags/2.0-Beta2-RC1/modules/shell/src/main/java/org/apache/tuscany/sca/shell/jline/JLine.java | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/sca-java-2.x/tags/2.0-Beta2-RC1/modules/shell/src/main/java/org/apache/tuscany/sca/shell/jline/JLine.java b/sca-java-2.x/tags/2.0-Beta2-RC1/modules/shell/src/main/java/org/apache/tuscany/sca/shell/jline/JLine.java deleted file mode 100644 index e8fcd627e2..0000000000 --- a/sca-java-2.x/tags/2.0-Beta2-RC1/modules/shell/src/main/java/org/apache/tuscany/sca/shell/jline/JLine.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.shell.jline; - -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.IOException; -import java.lang.reflect.Field; -import java.util.LinkedList; -import java.util.List; - -import jline.Completor; -import jline.ConsoleReader; - -import org.apache.tuscany.sca.shell.Shell; - -/** - * Keep all the JLine specific code out of the Shell class so that it runs ok - * when jline isn't on the classpath. - */ -public class JLine { - - public static String readLine(Object r) throws IOException { - return ((ConsoleReader)r).readLine(); - } - - public static Object createJLineReader(final Shell shell) throws IOException { - ConsoleReader reader = new ConsoleReader(); - fixCtrlC(reader); - // Add a Ctrl-c listener - reader.addTriggeredAction((char)3, new ActionListener() { - public void actionPerformed(ActionEvent e) { - shell.bye(); - System.exit(0); - } - }); - reader.setBellEnabled(false); - // TODO: write a Completor specific to this that can handle the individual command arguments - List<Completor> completors = new LinkedList<Completor>(); -// completors.add(new SimpleCompletor(Shell.COMMANDS)); -// completors.add(new ICURICompletor(shell.node)); -// completors.add(new FileNameCompletor()); -// reader.addCompletor(new ArgumentCompletor(completors)); - reader.addCompletor(new TShellCompletor(shell)); - return reader; - } - - /** - * The windowsbindings.properties shipped inside jline maps ctrl-c to INSERT - * with the comment "(frankly, I wasn't sure where to bind this)". That does not - * seem a great choice as it disables ctrl-c interupt so this resets that binding. - */ - private static void fixCtrlC(ConsoleReader reader) { - try { - Field f = ConsoleReader.class.getDeclaredField("keybindings"); - f.setAccessible(true); - short[] keybindings = (short[])f.get(reader); - if (keybindings[3] == -48) keybindings[3] = 3; - } catch (Exception e) { - e.printStackTrace(); // shouldnt happen - } - } -} |