Author: koen.aers(a)jboss.com
Date: 2011-02-22 10:00:17 -0500 (Tue, 22 Feb 2011)
New Revision: 29263
Added:
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/console/CommandRecorder.java
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/importer/
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/importer/ProjectImporter.java
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/importer/ProjectRecord.java
Modified:
trunk/forge/plugins/org.jboss.tools.seam.forge/META-INF/MANIFEST.MF
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/console/Console.java
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/console/StreamListener.java
Log:
work on import project
Modified: trunk/forge/plugins/org.jboss.tools.seam.forge/META-INF/MANIFEST.MF
===================================================================
--- trunk/forge/plugins/org.jboss.tools.seam.forge/META-INF/MANIFEST.MF 2011-02-22
14:31:53 UTC (rev 29262)
+++ trunk/forge/plugins/org.jboss.tools.seam.forge/META-INF/MANIFEST.MF 2011-02-22
15:00:17 UTC (rev 29263)
@@ -11,7 +11,8 @@
org.eclipse.jdt.launching;bundle-version="3.5.100",
org.eclipse.core.variables;bundle-version="3.2.400",
org.eclipse.ui.editors;bundle-version="3.6.1",
- org.eclipse.ui.ide;bundle-version="3.6.1"
+ org.eclipse.ui.ide;bundle-version="3.6.1",
+ org.maven.ide.eclipse;bundle-version="0.12.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Bundle-Activator: org.jboss.tools.seam.forge.Activator
Added:
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/console/CommandRecorder.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/console/CommandRecorder.java
(rev 0)
+++
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/console/CommandRecorder.java 2011-02-22
15:00:17 UTC (rev 29263)
@@ -0,0 +1,70 @@
+package org.jboss.tools.seam.forge.console;
+
+import org.eclipse.jface.text.DocumentEvent;
+import org.eclipse.jface.text.IDocumentListener;
+
+public class CommandRecorder implements IDocumentListener {
+
+ private StringBuffer buffer = new StringBuffer();
+ private String beforePrompt = null;
+ private String currentPrompt = null;
+ private String currentCommand = null;
+
+ @Override
+ public void documentAboutToBeChanged(DocumentEvent event) {
+ }
+
+ @Override
+ public void documentChanged(DocumentEvent event) {
+ if (event.getLength() == 1 && "".equals(event.getText())) {
+ buffer.setLength(buffer.length() - 1);
+ } else {
+ buffer.append(event.getText());
+ String newPrompt = getNewPrompt();
+ if (newPrompt != null) {
+ currentPrompt = newPrompt;
+ beforePrompt = buffer.substring(0, buffer.length() - newPrompt.length());
+ buffer.setLength(0);
+ if (currentCommand != null) {
+ postProcessCurrentCommand();
+ currentCommand = null;
+ }
+ } else {
+ if (currentPrompt != null) {
+ String newCommand = getNewCommand();
+ if (newCommand != null) {
+ currentCommand = newCommand;
+ }
+ }
+ }
+ }
+ }
+
+ private String getNewPrompt() {
+ int lastLineBreak = buffer.lastIndexOf("\n");
+ if (lastLineBreak == -1) return null;
+ String lastLine = buffer.substring(lastLineBreak + 1);
+ if (lastLine.length() == 0) return null;
+ if (lastLine.charAt(0) != '[') return null;
+ int rightBracketIndex = lastLine.indexOf(']');
+ if (rightBracketIndex == -1) return null;
+ return lastLine.endsWith("$ ") ? lastLine : null;
+ }
+
+ private String getNewCommand() {
+ String candidateCommand = buffer.toString();
+ if ("pwd".equals(candidateCommand)) {
+ return "pwd";
+ } else if ("new-project".equals(candidateCommand)) {
+ return "new-project";
+ } else {
+ return null;
+ }
+ }
+
+ private void postProcessCurrentCommand() {
+ System.out.println("post processing current command : " + currentCommand);
+ System.out.println("beforePrompt :\n" + beforePrompt);
+ }
+
+}
Property changes on:
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/console/CommandRecorder.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/console/Console.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/console/Console.java 2011-02-22
14:31:53 UTC (rev 29262)
+++
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/console/Console.java 2011-02-22
15:00:17 UTC (rev 29263)
@@ -29,10 +29,15 @@
this.process = process;
initInputStream();
initPartitioner();
+ initCommandRecorder();
initOutputStream();
initInputReadJob();
}
+ private void initCommandRecorder() {
+ getDocument().addDocumentListener(new CommandRecorder());
+ }
+
private void initInputStream() {
inputStream = new ConsoleInputStream();
}
Modified:
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/console/StreamListener.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/console/StreamListener.java 2011-02-22
14:31:53 UTC (rev 29262)
+++
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/console/StreamListener.java 2011-02-22
15:00:17 UTC (rev 29263)
@@ -9,6 +9,8 @@
class StreamListener implements IStreamListener {
private ConsoleOutputStream stream;
+ private StringBuffer buffer = new StringBuffer();
+ private boolean creatingProject = false;
StreamListener(ConsoleOutputStream stream) {
this.stream = stream;
@@ -16,11 +18,27 @@
public void streamAppended(String text, IStreamMonitor streamMonitor) {
try {
+ buffer.append(text);
+ if (buffer.indexOf("new-project") != -1) {
+ creatingProject = true;
+ }
stream.write(text);
+ if (creatingProject
+ && (text.indexOf('\n') != -1)
+ && (buffer.indexOf("Created project [") != -1)
+ && (buffer.indexOf("] in new working directory [") !=
-1)) {
+ postProcessCreatedProject(buffer.toString());
+ creatingProject = false;
+ buffer = new StringBuffer();
+ }
} catch (IOException e) {
Activator.log(e);
}
}
+
+ private void postProcessCreatedProject(String command) {
+ System.out.println("processing created project: \n" + command);
+ }
}
Added:
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/importer/ProjectImporter.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/importer/ProjectImporter.java
(rev 0)
+++
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/importer/ProjectImporter.java 2011-02-22
15:00:17 UTC (rev 29263)
@@ -0,0 +1,26 @@
+package org.jboss.tools.seam.forge.importer;
+
+import java.io.File;
+
+import org.eclipse.core.runtime.jobs.Job;
+import org.maven.ide.eclipse.MavenPlugin;
+import org.maven.ide.eclipse.project.LocalProjectScanner;
+
+
+public class ProjectImporter {
+
+ LocalProjectScanner localProjectScanner;
+
+ File workspaceRoot;
+
+
+ public void importProject() {
+
+ MavenPlugin mavenPlugin = MavenPlugin.getDefault();
+
+// Job job = new org.maven.ide.eclipse.internal.project.
+
+// localProjectScanner = new LocalProjectScanner
+ }
+
+}
Property changes on:
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/importer/ProjectImporter.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/importer/ProjectRecord.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/importer/ProjectRecord.java
(rev 0)
+++
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/importer/ProjectRecord.java 2011-02-22
15:00:17 UTC (rev 29263)
@@ -0,0 +1,77 @@
+package org.jboss.tools.seam.forge.importer;
+
+import java.io.File;
+
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+
+public class ProjectRecord {
+
+ File projectFile;
+
+ String projectName;
+
+ IProjectDescription description;
+
+ /**
+ * Create a record for a project based on the info in the file.
+ *
+ * @param file
+ */
+ ProjectRecord(File file) {
+ projectFile = file;
+ setProjectName();
+ }
+
+ /**
+ * Set the name of the project based on the projectFile.
+ */
+ private void setProjectName() {
+ IProjectDescription newDescription = null;
+ try {
+ IPath path = new Path(projectFile.getPath());
+ // if the file is in the default location, use the directory
+ // name as the project name
+ newDescription = ResourcesPlugin.getWorkspace().loadProjectDescription(path);
+
+ if(isDefaultLocation(path)) {
+ // projectName = path.segment(path.segmentCount() - 2);
+ // newDescription =
ResourcesPlugin.getWorkspace().newProjectDescription(projectName);
+ }
+ } catch(CoreException e) {
+ // no good couldn't get the name
+ }
+
+ if(newDescription == null) {
+ this.description = null;
+ projectName = ""; //$NON-NLS-1$
+ } else {
+ this.description = newDescription;
+ projectName = this.description.getName();
+ }
+ }
+
+ /**
+ * Returns whether the given project description file path is in the default location
for a project
+ *
+ * @param path The path to examine
+ * @return Whether the given path is the default location for a project
+ */
+ private boolean isDefaultLocation(IPath path) {
+ // The project description file must at least be within the project, which is
within the workspace location
+ return path.segmentCount() > 1 &&
path.removeLastSegments(2).toFile().equals(Platform.getLocation().toFile());
+ }
+
+ /**
+ * Get the name of the project
+ *
+ * @return String
+ */
+ public String getProjectName() {
+ return projectName;
+ }
+}
Property changes on:
trunk/forge/plugins/org.jboss.tools.seam.forge/src/org/jboss/tools/seam/forge/importer/ProjectRecord.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Show replies by date