Changeset 10998


Ignore:
Timestamp:
02/23/06 16:08:23 (15 years ago)
Author:
piso
Message:

Reformatted source.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/j/Darcs.java

    r10079 r10998  
    22 * Darcs.java
    33 *
    4  * Copyright (C) 2005 Peter Graves
    5  * $Id: Darcs.java,v 1.1 2005-10-06 10:33:53 piso Exp $
     4 * Copyright (C) 2005-2006 Peter Graves
     5 * $Id: Darcs.java,v 1.2 2006-02-23 16:08:23 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    3333public class Darcs implements Constants
    3434{
    35     public static void darcs()
    36     {
    37         darcs("");
    38     }
     35  public static void darcs()
     36  {
     37    darcs("");
     38  }
    3939
    40     public static void darcs(String s)
    41     {
    42         if (!checkDarcsInstalled())
    43             return;
    44         final Editor editor = Editor.currentEditor();
    45         editor.setWaitCursor();
    46         List args = Utilities.tokenize(s);
    47         FastStringBuffer sb = new FastStringBuffer("darcs ");
    48         for (Iterator it = args.iterator(); it.hasNext();) {
    49             String arg = (String) it.next();
    50             if (arg.equals("%")) {
    51                 File file = editor.getBuffer().getFile();
    52                 if (file != null)
    53                     arg = file.canonicalPath();
    54             }
    55             sb.append(maybeQuote(arg));
    56             sb.append(' ');
     40  public static void darcs(String s)
     41  {
     42    if (!checkDarcsInstalled())
     43      return;
     44    final Editor editor = Editor.currentEditor();
     45    editor.setWaitCursor();
     46    List args = Utilities.tokenize(s);
     47    FastStringBuffer sb = new FastStringBuffer("darcs ");
     48    for (Iterator it = args.iterator(); it.hasNext();)
     49      {
     50        String arg = (String) it.next();
     51        if (arg.equals("%"))
     52          {
     53            File file = editor.getBuffer().getFile();
     54            if (file != null)
     55              arg = file.canonicalPath();
     56          }
     57        sb.append(maybeQuote(arg));
     58        sb.append(' ');
     59      }
     60    final String cmd = sb.toString().trim();
     61    final Buffer parentBuffer = editor.getBuffer();
     62    Runnable commandRunnable = new Runnable()
     63      {
     64        public void run()
     65        {
     66          final String output =
     67            command(cmd, editor.getCurrentDirectory());
     68          Runnable completionRunnable = new Runnable()
     69            {
     70              public void run()
     71              {
     72                darcsCompleted(editor, parentBuffer, cmd, output);
     73              }
     74            };
     75          SwingUtilities.invokeLater(completionRunnable);
    5776        }
    58         final String cmd = sb.toString().trim();
    59         final Buffer parentBuffer = editor.getBuffer();
    60         Runnable commandRunnable = new Runnable() {
    61             public void run()
    62             {
    63                 final String output =
    64                     command(cmd, editor.getCurrentDirectory());
    65                 Runnable completionRunnable = new Runnable() {
    66                     public void run()
    67                     {
    68                         darcsCompleted(editor, parentBuffer, cmd, output);
    69                     }
    70                 };
    71                 SwingUtilities.invokeLater(completionRunnable);
    72             }
    73         };
    74         new Thread(commandRunnable).start();
    75     }
     77      };
     78    new Thread(commandRunnable).start();
     79  }
    7680
    77     private static void darcsCompleted(Editor editor, Buffer parentBuffer,
    78         String cmd, String output)
    79     {
    80         if (output != null && output.length() > 0) {
    81             Buffer buf;
    82             if (cmd.startsWith("darcs whatsnew"))
    83                 buf = new DiffOutputBuffer(parentBuffer, output, VC_DARCS);
    84             else
    85                 buf = OutputBuffer.getOutputBuffer(output);
    86             buf.setTitle(cmd);
    87             editor.makeNext(buf);
    88             editor.activateInOtherWindow(buf);
    89         }
    90     }
     81  private static void darcsCompleted(Editor editor, Buffer parentBuffer,
     82                                     String cmd, String output)
     83  {
     84    if (output != null && output.length() > 0)
     85      {
     86        Buffer buf;
     87        if (cmd.startsWith("darcs whatsnew"))
     88          buf = new DiffOutputBuffer(parentBuffer, output, VC_DARCS);
     89        else
     90          buf = OutputBuffer.getOutputBuffer(output);
     91        buf.setTitle(cmd);
     92        editor.makeNext(buf);
     93        editor.activateInOtherWindow(buf);
     94      }
     95  }
    9196
    92     // Implementation.
    93     private static final String command(String cmd, File workingDirectory)
    94     {
    95         ShellCommand shellCommand = new ShellCommand(cmd, workingDirectory);
    96         shellCommand.run();
    97         return shellCommand.getOutput();
    98     }
     97  // Implementation.
     98  private static final String command(String cmd, File workingDirectory)
     99  {
     100    ShellCommand shellCommand = new ShellCommand(cmd, workingDirectory);
     101    shellCommand.run();
     102    return shellCommand.getOutput();
     103  }
    99104
    100     private static boolean checkDarcsInstalled()
    101     {
    102         if (haveDarcs())
    103             return true;
    104         MessageDialog.showMessageDialog(
    105             "The darcs command-line client does not appear to be in your PATH.",
    106             "Error");
    107         return false;
    108     }
     105  private static boolean checkDarcsInstalled()
     106  {
     107    if (haveDarcs())
     108      return true;
     109    MessageDialog.showMessageDialog(
     110      "The darcs command-line client does not appear to be in your PATH.",
     111      "Error");
     112    return false;
     113  }
    109114
    110     private static int haveDarcs = -1;
     115  private static int haveDarcs = -1;
    111116
    112     private static boolean haveDarcs()
    113     {
    114         if (haveDarcs > 0)
    115             return true;
    116         if (Utilities.have("darcs")) {
    117             haveDarcs = 1; // Cache positive result.
    118             return true;
    119         }
    120         return false;
    121     }
     117  private static boolean haveDarcs()
     118  {
     119    if (haveDarcs > 0)
     120      return true;
     121    if (Utilities.have("darcs"))
     122      {
     123        haveDarcs = 1; // Cache positive result.
     124        return true;
     125      }
     126    return false;
     127  }
    122128
    123     // Enclose string in quotes if it contains any embedded spaces.
    124     private static String maybeQuote(String s)
    125     {
    126         if (s.indexOf(' ') < 0)
    127             return s;
    128         FastStringBuffer sb = new FastStringBuffer('"');
    129         sb.append(s);
    130         sb.append('"');
    131         return sb.toString();
    132     }
     129  // Enclose string in quotes if it contains any embedded spaces.
     130  private static String maybeQuote(String s)
     131  {
     132    if (s.indexOf(' ') < 0)
     133      return s;
     134    FastStringBuffer sb = new FastStringBuffer('"');
     135    sb.append(s);
     136    sb.append('"');
     137    return sb.toString();
     138  }
    133139}
Note: See TracChangeset for help on using the changeset viewer.