Added "New Local Terminal" toolbar action.
diff --git a/com.google.eclipse.terminal.local/icons/new_terminal.gif b/com.google.eclipse.terminal.local/icons/new_terminal.gif
new file mode 100644
index 0000000..80201e0
--- /dev/null
+++ b/com.google.eclipse.terminal.local/icons/new_terminal.gif
Binary files differ
diff --git a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/Activator.java b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/Activator.java
index 61ae1a7..43341d2 100644
--- a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/Activator.java
+++ b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/Activator.java
@@ -8,7 +8,7 @@
  */
 package com.google.eclipse.terminal.local;
 
-import static com.google.eclipse.terminal.local.ImageKeys.SCROLL_LOCK;
+import static com.google.eclipse.terminal.local.ImageKeys.*;
 import static org.eclipse.core.runtime.IStatus.*;
 
 import java.net.URL;
@@ -17,7 +17,7 @@
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.resource.*;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
+import org.osgi.framework.*;
 
 /**
  * The activator class controls the plug-in life cycle.
@@ -40,7 +40,10 @@
   }
 
   @Override protected void initializeImageRegistry(ImageRegistry registry) {
-    URL scrollLockImageUrl = instance().getBundle().getEntry("icons/scroll_lock.gif");
+    Bundle bundle = instance().getBundle();
+    URL newTerminalImageUrl = bundle.getEntry("icons/new_terminal.gif");
+    registry.put(NEW_TERMINAL, ImageDescriptor.createFromURL(newTerminalImageUrl));
+    URL scrollLockImageUrl = bundle.getEntry("icons/scroll_lock.gif");
     registry.put(SCROLL_LOCK, ImageDescriptor.createFromURL(scrollLockImageUrl));
   }
 
diff --git a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ImageKeys.java b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ImageKeys.java
index 7290c5d..25b78fb 100644
--- a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ImageKeys.java
+++ b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ImageKeys.java
@@ -12,6 +12,7 @@
  * @author alruiz@google.com (Alex Ruiz)
  */
 public final class ImageKeys {
+  public static final String NEW_TERMINAL = "newTerminal";
   public static final String SCROLL_LOCK = "scrollLock";
 
   private ImageKeys() {}
diff --git a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/Messages.java b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/Messages.java
index da4c1e0..1fbc4cc 100644
--- a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/Messages.java
+++ b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/Messages.java
@@ -15,6 +15,7 @@
  */
 public class Messages extends NLS {
   public static String defaultViewTitle;
+  public static String newLocalTerminal;
   public static String scrollLock;
 
   static {
diff --git a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/Messages.properties b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/Messages.properties
index 8417f99..0a447fb 100644
--- a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/Messages.properties
+++ b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/Messages.properties
@@ -1,2 +1,3 @@
 defaultViewTitle=Local Terminal
+newLocalTerminal=New Local Terminal
 scrollLock=Scroll Lock
diff --git a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalView.java b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalView.java
index c5387e1..c4b14c7 100644
--- a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalView.java
+++ b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalView.java
@@ -9,7 +9,7 @@
 package com.google.eclipse.terminal.local.ui.view;
 
 import static com.google.eclipse.terminal.local.Activator.*;
-import static com.google.eclipse.terminal.local.ImageKeys.SCROLL_LOCK;
+import static com.google.eclipse.terminal.local.ImageKeys.*;
 import static com.google.eclipse.terminal.local.ui.preferences.ColorsAndFontsPreferences.*;
 import static com.google.eclipse.terminal.local.ui.preferences.GeneralPreferences.*;
 import static com.google.eclipse.terminal.local.ui.util.Displays.runInDisplayThread;
@@ -19,6 +19,8 @@
 import static org.eclipse.jface.resource.JFaceResources.TEXT_FONT;
 import static org.eclipse.ui.IWorkbenchPage.VIEW_ACTIVATE;
 
+import java.util.UUID;
+
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.action.*;
 import org.eclipse.jface.resource.JFaceResources;
@@ -50,13 +52,19 @@
   private TerminalWidget terminalWidget;
   private IPath workingDirectory;
 
+  private Action newTerminalAction;
   private Action scrollLockAction;
 
   public static void openTerminalView(IPath workingDirectory) {
+    openTerminalView(null, workingDirectory);
+  }
+
+  private static void openTerminalView(String id, IPath workingDirectory) {
     IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
     try {
       String directoryName = workingDirectory.lastSegment();
-      TerminalView view = (TerminalView) page.showView(VIEW_ID, directoryName, VIEW_ACTIVATE);
+      String secondaryId = (id != null) ? id : directoryName;
+      TerminalView view = (TerminalView) page.showView(VIEW_ID, secondaryId, VIEW_ACTIVATE);
       view.setPartName(directoryName);
       view.open(workingDirectory);
     } catch (PartInitException e) {
@@ -136,8 +144,7 @@
     };
     JFaceResources.getFontRegistry().addListener(textFontChangeListener);
     updateFont();
-    scrollLockAction = new ScrollLockAction();
-    setupLocalToolBars();
+    setupToolBarActions();
     if (savedState != null) {
       updateScrollLockUsingSavedState();
       connectUsingSavedState();
@@ -173,8 +180,11 @@
     terminalWidget.setBufferLineCount(bufferLineCount());
   }
 
-  private void setupLocalToolBars() {
+  private void setupToolBarActions() {
     IToolBarManager toolBarManager = getViewSite().getActionBars().getToolBarManager();
+    newTerminalAction = new NewTerminalAction();
+    toolBarManager.add(newTerminalAction);
+    scrollLockAction = new ScrollLockAction();
     toolBarManager.add(scrollLockAction);
   }
 
@@ -229,6 +239,17 @@
     super.dispose();
   }
 
+  private class NewTerminalAction extends Action {
+    NewTerminalAction() {
+      setImageDescriptor(imageDescriptor(NEW_TERMINAL));
+      setText(newLocalTerminal);
+    }
+
+    @Override public void run() {
+      openTerminalView(UUID.randomUUID().toString(), workingDirectory);
+    }
+  }
+
   private class ScrollLockAction extends Action {
     ScrollLockAction() {
       super(scrollLock, AS_RADIO_BUTTON);