In progress: [ Issue 40 ] Add support for import resolution across multiple folders
https://code.google.com/p/protobuf-dt/issues/detail?id=40

Moved "compiler preferences" code to package com.google.protobuf.ui.preferences.compiler.
diff --git a/com.google.eclipse.protobuf.ui/plugin.xml b/com.google.eclipse.protobuf.ui/plugin.xml
index 133a7c3..18843bf 100644
--- a/com.google.eclipse.protobuf.ui/plugin.xml
+++ b/com.google.eclipse.protobuf.ui/plugin.xml
@@ -63,8 +63,8 @@
       <keywordReference id="com.google.eclipse.protobuf.ui.keyword_Protobuf" />
     </page>
     <page category="com.google.eclipse.protobuf.Protobuf"
-      class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:com.google.eclipse.protobuf.ui.preferences.CompilerPreferencePage"
-      id="com.google.eclipse.protobuf.ui.preferences.CompilerPreferencePage" name="%page.name.2">
+      class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:com.google.eclipse.protobuf.ui.preferences.compiler.CompilerPreferencePage"
+      id="com.google.eclipse.protobuf.ui.preferences.compiler.CompilerPreferencePage" name="%page.name.2">
       <keywordReference id="com.google.eclipse.protobuf.ui.keyword_Protobuf" />
     </page>
   </extension>
@@ -161,8 +161,8 @@
   </extension>
   <extension point="org.eclipse.ui.propertyPages">
     <page
-      class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:com.google.eclipse.protobuf.ui.preferences.CompilerPreferencePage"
-      id="com.google.eclipse.protobuf.ui.properties.CompilerPropertyPage" name="%page.name.3" selectionFilter="single">
+      class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:com.google.eclipse.protobuf.ui.preferences.compiler.CompilerPreferencePage"
+      id="com.google.eclipse.protobuf.ui.properties.compiler.CompilerPropertyPage" name="%page.name.3" selectionFilter="single">
     </page>
   </extension>
   <extension point="org.eclipse.xtext.builder.participant">
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/ProtobufUiModule.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/ProtobufUiModule.java
index 99e78a5..130f949 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/ProtobufUiModule.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/ProtobufUiModule.java
@@ -17,7 +17,7 @@
 import com.google.eclipse.protobuf.ui.builder.AutoAddNatureEditorCallback;
 import com.google.eclipse.protobuf.ui.outline.LinkWithEditor;
 import com.google.eclipse.protobuf.ui.outline.ProtobufOutlinePage;
-import com.google.eclipse.protobuf.ui.preferences.CompilerPreferencesInitializer;
+import com.google.eclipse.protobuf.ui.preferences.compiler.CompilerPreferencesInitializer;
 import com.google.inject.Binder;
 import com.google.inject.name.Names;
 
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/ProtobufBuildParticipant.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/ProtobufBuildParticipant.java
index 2c62ee8..8b3d8e5 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/ProtobufBuildParticipant.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/ProtobufBuildParticipant.java
@@ -8,8 +8,8 @@
  */
 package com.google.eclipse.protobuf.ui.builder;
 
-import static com.google.eclipse.protobuf.ui.preferences.CompilerPreferences.loadPreferences;
-import static com.google.eclipse.protobuf.ui.preferences.RefreshTarget.PROJECT;
+import static com.google.eclipse.protobuf.ui.preferences.compiler.CompilerPreferences.loadPreferences;
+import static com.google.eclipse.protobuf.ui.preferences.compiler.RefreshTarget.PROJECT;
 import static org.eclipse.core.resources.IResource.DEPTH_INFINITE;
 
 import java.io.*;
@@ -25,6 +25,7 @@
 import org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreAccess;
 
 import com.google.eclipse.protobuf.ui.preferences.*;
+import com.google.eclipse.protobuf.ui.preferences.compiler.*;
 import com.google.inject.Inject;
 
 /**
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/ProtocCommandFactory.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/ProtocCommandFactory.java
index 67d79b5..2a08ea7 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/ProtocCommandFactory.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/ProtocCommandFactory.java
@@ -14,7 +14,7 @@
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.IPath;
 
-import com.google.eclipse.protobuf.ui.preferences.TargetLanguage;
+import com.google.eclipse.protobuf.ui.preferences.compiler.TargetLanguage;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/Messages.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/Messages.java
index 3940ab3..d471ac8 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/Messages.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/Messages.java
@@ -24,25 +24,4 @@
 
   public static String BasePreferencePage_enableProjectSettings;
   public static String BasePreferencePage_configureWorkspaceSettings;
-  
-  public static String CompilerPreferencePage_mainTab;
-  public static String CompilerPreferencePage_refreshTab;
-  public static String CompilerPreferencePage_browseCustomPath;
-  public static String CompilerPreferencePage_compileOnSave;
-  public static String CompilerPreferencePage_customPath;
-  public static String CompilerPreferencePage_location;
-  public static String CompilerPreferencePage_systemPath;
-  public static String CompilerPreferencePage_targetLanguage;
-  public static String CompilerPreferencePage_generateJava;
-  public static String CompilerPreferencePage_generateCpp;
-  public static String CompilerPreferencePage_generatePython;
-  public static String CompilerPreferencePage_generatedCode;
-  public static String CompilerPreferencePage_outputFolderName;
-  public static String CompilerPreferencePage_directChildOfProjectFolder;
-  public static String CompilerPreferencePage_refreshResources;
-  public static String CompilerPreferencePage_refreshProject;
-  public static String CompilerPreferencePage_refreshOutputProject;
-  public static String CompilerPreferencePage_error_noSelection;
-  public static String CompilerPreferencePage_error_invalidProtoc;
-  public static String CompilerPreferencePage_error_noOutputFolderName;
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/Messages.properties b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/Messages.properties
index def9ed8..ac4b1f0 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/Messages.properties
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/Messages.properties
@@ -1,24 +1,2 @@
 BasePreferencePage_enableProjectSettings=Enable project specific settings
 BasePreferencePage_configureWorkspaceSettings=Configure Workspace Settings...
-
-CompilerPreferencePage_mainTab=&Main
-CompilerPreferencePage_refreshTab=&Refresh
-CompilerPreferencePage_browseCustomPath=&Browse...
-CompilerPreferencePage_compileOnSave=Compile .proto files on &save
-CompilerPreferencePage_customPath=Use protoc &in:
-CompilerPreferencePage_location=Compiler location (protoc)
-CompilerPreferencePage_systemPath=Use protoc in &PATH
-CompilerPreferencePage_targetLanguage=Target Language
-CompilerPreferencePage_generateJava=&Java
-CompilerPreferencePage_generateCpp=&C++
-CompilerPreferencePage_generatePython=&Python
-CompilerPreferencePage_generatedCode=Generated Code
-CompilerPreferencePage_outputFolderName=Folder Name: *
-CompilerPreferencePage_directChildOfProjectFolder=* Direct child of project folder
-CompilerPreferencePage_refreshResources=Refresh resources upon completion.
-CompilerPreferencePage_refreshProject=Project
-CompilerPreferencePage_refreshOutputProject=Folder containing generated code
-CompilerPreferencePage_error_noSelection=Select the path of protoc
-CompilerPreferencePage_error_invalidProtoc=The selected file is not protoc
-CompilerPreferencePage_error_noOutputFolderName=Enter the name of the output folder
-
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/CompilerPreferenceNames.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/CompilerPreferenceNames.java
similarity index 95%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/CompilerPreferenceNames.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/CompilerPreferenceNames.java
index 69a3441..d6f6501 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/CompilerPreferenceNames.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/CompilerPreferenceNames.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.preferences;
+package com.google.eclipse.protobuf.ui.preferences.compiler;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/CompilerPreferencePage.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/CompilerPreferencePage.java
similarity index 97%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/CompilerPreferencePage.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/CompilerPreferencePage.java
index fca2eba..f629c4b 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/CompilerPreferencePage.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/CompilerPreferencePage.java
@@ -6,10 +6,10 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.preferences;
+package com.google.eclipse.protobuf.ui.preferences.compiler;
 
-import static com.google.eclipse.protobuf.ui.preferences.CompilerPreferenceNames.*;
-import static com.google.eclipse.protobuf.ui.preferences.Messages.*;
+import static com.google.eclipse.protobuf.ui.preferences.compiler.CompilerPreferenceNames.*;
+import static com.google.eclipse.protobuf.ui.preferences.compiler.Messages.*;
 import static org.eclipse.core.resources.IResource.FOLDER;
 import static org.eclipse.core.runtime.IStatus.OK;
 
@@ -27,6 +27,7 @@
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreAccess;
 
+import com.google.eclipse.protobuf.ui.preferences.PreferenceAndPropertyPage;
 import com.google.inject.Inject;
 
 /**
@@ -36,7 +37,7 @@
  */
 public class CompilerPreferencePage extends PreferenceAndPropertyPage {
 
-  private static final String PREFERENCE_PAGE_ID = "com.google.eclipse.protobuf.ui.preferences.CompilerPreferencePage";
+  private static final String PREFERENCE_PAGE_ID = CompilerPreferencePage.class.getName();
 
   private Button btnCompileProtoFiles;
   private TabFolder tabFolder;
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/CompilerPreferences.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/CompilerPreferences.java
similarity index 91%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/CompilerPreferences.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/CompilerPreferences.java
index 2488865..46a6f3e 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/CompilerPreferences.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/CompilerPreferences.java
@@ -6,9 +6,9 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.preferences;
+package com.google.eclipse.protobuf.ui.preferences.compiler;
 
-import static com.google.eclipse.protobuf.ui.preferences.CompilerPreferenceNames.*;
+import static com.google.eclipse.protobuf.ui.preferences.compiler.CompilerPreferenceNames.*;
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.jface.preference.IPreferenceStore;
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/CompilerPreferencesInitializer.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/CompilerPreferencesInitializer.java
similarity index 88%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/CompilerPreferencesInitializer.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/CompilerPreferencesInitializer.java
index 2895400..0b23cd6 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/CompilerPreferencesInitializer.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/CompilerPreferencesInitializer.java
@@ -6,9 +6,9 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.preferences;
+package com.google.eclipse.protobuf.ui.preferences.compiler;
 
-import static com.google.eclipse.protobuf.ui.preferences.CompilerPreferenceNames.*;
+import static com.google.eclipse.protobuf.ui.preferences.compiler.CompilerPreferenceNames.*;
 
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreAccess;
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/Messages.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/Messages.java
new file mode 100644
index 0000000..f3bbc98
--- /dev/null
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/Messages.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2011 Google Inc.
+ *
+ * All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse
+ * Public License v1.0 which accompanies this distribution, and is available at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ */
+package com.google.eclipse.protobuf.ui.preferences.compiler;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * @author alruiz@google.com (Alex Ruiz)
+ */
+public class Messages extends NLS {
+
+  static {
+    Class<Messages> targetType = Messages.class;
+    NLS.initializeMessages(targetType.getName(), targetType);
+  }
+
+  private Messages() {}
+  
+  public static String CompilerPreferencePage_mainTab;
+  public static String CompilerPreferencePage_refreshTab;
+  public static String CompilerPreferencePage_browseCustomPath;
+  public static String CompilerPreferencePage_compileOnSave;
+  public static String CompilerPreferencePage_customPath;
+  public static String CompilerPreferencePage_location;
+  public static String CompilerPreferencePage_systemPath;
+  public static String CompilerPreferencePage_targetLanguage;
+  public static String CompilerPreferencePage_generateJava;
+  public static String CompilerPreferencePage_generateCpp;
+  public static String CompilerPreferencePage_generatePython;
+  public static String CompilerPreferencePage_generatedCode;
+  public static String CompilerPreferencePage_outputFolderName;
+  public static String CompilerPreferencePage_directChildOfProjectFolder;
+  public static String CompilerPreferencePage_refreshResources;
+  public static String CompilerPreferencePage_refreshProject;
+  public static String CompilerPreferencePage_refreshOutputProject;
+  public static String CompilerPreferencePage_error_noSelection;
+  public static String CompilerPreferencePage_error_invalidProtoc;
+  public static String CompilerPreferencePage_error_noOutputFolderName;
+}
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/Messages.properties b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/Messages.properties
new file mode 100644
index 0000000..55c47b6
--- /dev/null
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/Messages.properties
@@ -0,0 +1,21 @@
+CompilerPreferencePage_mainTab=&Main
+CompilerPreferencePage_refreshTab=&Refresh
+CompilerPreferencePage_browseCustomPath=&Browse...
+CompilerPreferencePage_compileOnSave=Compile .proto files on &save
+CompilerPreferencePage_customPath=Use protoc &in:
+CompilerPreferencePage_location=Compiler location (protoc)
+CompilerPreferencePage_systemPath=Use protoc in &PATH
+CompilerPreferencePage_targetLanguage=Target Language
+CompilerPreferencePage_generateJava=&Java
+CompilerPreferencePage_generateCpp=&C++
+CompilerPreferencePage_generatePython=&Python
+CompilerPreferencePage_generatedCode=Generated Code
+CompilerPreferencePage_outputFolderName=Folder Name: *
+CompilerPreferencePage_directChildOfProjectFolder=* Direct child of project folder
+CompilerPreferencePage_refreshResources=Refresh resources upon completion.
+CompilerPreferencePage_refreshProject=Project
+CompilerPreferencePage_refreshOutputProject=Folder containing generated code
+CompilerPreferencePage_error_noSelection=Select the path of protoc
+CompilerPreferencePage_error_invalidProtoc=The selected file is not protoc
+CompilerPreferencePage_error_noOutputFolderName=Enter the name of the output folder
+
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/RefreshTarget.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/RefreshTarget.java
similarity index 79%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/RefreshTarget.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/RefreshTarget.java
index 8b6e0e7..7f360e7 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/RefreshTarget.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/RefreshTarget.java
@@ -6,9 +6,9 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.preferences;
+package com.google.eclipse.protobuf.ui.preferences.compiler;
 
-import static com.google.eclipse.protobuf.ui.preferences.CompilerPreferenceNames.REFRESH_PROJECT;
+import static com.google.eclipse.protobuf.ui.preferences.compiler.CompilerPreferenceNames.REFRESH_PROJECT;
 
 import org.eclipse.jface.preference.IPreferenceStore;
 
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/TargetLanguage.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/TargetLanguage.java
similarity index 84%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/TargetLanguage.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/TargetLanguage.java
index af4d49b..e71f964 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/TargetLanguage.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/compiler/TargetLanguage.java
@@ -6,9 +6,9 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.preferences;
+package com.google.eclipse.protobuf.ui.preferences.compiler;
 
-import static com.google.eclipse.protobuf.ui.preferences.CompilerPreferenceNames.*;
+import static com.google.eclipse.protobuf.ui.preferences.compiler.CompilerPreferenceNames.*;
 
 import org.eclipse.jface.preference.IPreferenceStore;