Author: DartPeng
Date: 2010-07-12 08:19:05 -0400 (Mon, 12 Jul 2010)
New Revision: 23370
Added:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/libs/commons-beanutils-1.8.3.jar
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/libs/commons-beanutils-bean-collections-1.8.3.jar
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/libs/commons-beanutils-core-1.8.3.jar
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/AddCommand.java
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/Command.java
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/ICommand.java
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/RemoveCommand.java
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/SetCommand.java
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/SmooksCommandStack.java
Modified:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/.classpath
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/META-INF/MANIFEST.MF
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/build.properties
Log:
Modified: branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/.classpath
===================================================================
--- branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/.classpath 2010-07-12
12:17:53 UTC (rev 23369)
+++ branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/.classpath 2010-07-12
12:19:05 UTC (rev 23370)
@@ -1,7 +1,10 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con"
path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con"
path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="lib"
path="libs/commons-beanutils-1.8.3.jar"/>
+ <classpathentry kind="lib"
path="libs/commons-beanutils-bean-collections-1.8.3.jar"/>
+ <classpathentry kind="lib"
path="libs/commons-beanutils-core-1.8.3.jar"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Modified: branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/META-INF/MANIFEST.MF
===================================================================
---
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/META-INF/MANIFEST.MF 2010-07-12
12:17:53 UTC (rev 23369)
+++
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/META-INF/MANIFEST.MF 2010-07-12
12:19:05 UTC (rev 23370)
@@ -11,6 +11,7 @@
org.jboss.tools.smooks.runtime
Bundle-Activator: org.jboss.tools.smooks.model.plugin.SmooksModelActivator
Export-Package: org.jboss.tools.smooks.model,
+ org.jboss.tools.smooks.model.command,
org.jboss.tools.smooks.model.core,
org.jboss.tools.smooks.model.csv,
org.jboss.tools.smooks.model.edi,
@@ -18,4 +19,7 @@
org.jboss.tools.smooks.model.javabean,
org.jboss.tools.smooks.model.json,
org.jboss.tools.smooks.model.plugin
-Bundle-ClassPath: .
+Bundle-ClassPath: .,
+ libs/commons-beanutils-1.8.3.jar,
+ libs/commons-beanutils-bean-collections-1.8.3.jar,
+ libs/commons-beanutils-core-1.8.3.jar
Modified: branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/build.properties
===================================================================
--- branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/build.properties 2010-07-12
12:17:53 UTC (rev 23369)
+++ branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/build.properties 2010-07-12
12:19:05 UTC (rev 23370)
@@ -2,7 +2,10 @@
bin.includes = META-INF/,\
.,\
about.html,\
- plugin.properties
+ plugin.properties,\
+ libs/commons-beanutils-1.8.3.jar,\
+ libs/commons-beanutils-bean-collections-1.8.3.jar,\
+ libs/commons-beanutils-core-1.8.3.jar
jars.compile.order = .
source.. = src/
source.. = src/
Added:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/libs/commons-beanutils-1.8.3.jar
===================================================================
(Binary files differ)
Property changes on:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/libs/commons-beanutils-1.8.3.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/libs/commons-beanutils-bean-collections-1.8.3.jar
===================================================================
(Binary files differ)
Property changes on:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/libs/commons-beanutils-bean-collections-1.8.3.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/libs/commons-beanutils-core-1.8.3.jar
===================================================================
(Binary files differ)
Property changes on:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/libs/commons-beanutils-core-1.8.3.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/AddCommand.java
===================================================================
---
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/AddCommand.java
(rev 0)
+++
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/AddCommand.java 2010-07-12
12:19:05 UTC (rev 23370)
@@ -0,0 +1,68 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.model.command;
+
+import java.util.Collection;
+
+/**
+ * @author Dart
+ *
+ */
+public class AddCommand extends Command {
+
+ private boolean added = false;
+
+ public AddCommand() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ public AddCommand(Object host, Object value, String propertyName) {
+ super(host, value, propertyName);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void execute() {
+ try {
+ Object v = getPropertyValue();
+ if(!(v instanceof Collection)){
+ throw new RuntimeException("Value's type isn't Collection , please
check the " + "'" + propertyName + "'");
+ }
+ ((Collection)v).add(value);
+ added = true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public boolean canExecute() {
+ return ( host!=null && value!=null && !added && propertyName
!= null);
+ }
+
+ @Override
+ public boolean canRedo() {
+ return super.canRedo();
+ }
+
+ @Override
+ public boolean canUndo() {
+ return ( host!=null && value!=null && added && propertyName !=
null);
+ }
+
+ @Override
+ public void undo() {
+ try {
+ Object v = getPropertyValue();
+ if(!(v instanceof Collection)){
+ throw new RuntimeException("Value's type isn't Collection , please
check the " + "'" + propertyName + "'");
+ }
+ ((Collection)v).remove(value);
+ added = false;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
\ No newline at end of file
Property changes on:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/AddCommand.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/Command.java
===================================================================
---
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/Command.java
(rev 0)
+++
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/Command.java 2010-07-12
12:19:05 UTC (rev 23370)
@@ -0,0 +1,144 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.model.command;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import org.apache.commons.beanutils.PropertyUtils;
+
+/**
+ * @author Dart
+ *
+ */
+public class Command implements ICommand {
+
+ protected Object host;
+
+ protected String propertyName;
+
+ protected Object value;
+
+ protected Object oldValue;
+
+ protected boolean execued = false;
+
+ protected boolean redoed = false;
+
+ protected boolean undoed = false;
+
+ public Command(){
+
+ }
+
+ public Command(Object host , Object value , String propertyName ){
+ this.host = host;
+ this.propertyName = propertyName;
+ this.value = value;
+ }
+
+ public Object getValue() {
+ return value;
+ }
+
+ public void setValue(Object value) {
+ this.value = value;
+ }
+
+ public Object getHost() {
+ return host;
+ }
+
+ public void setHost(Object host) {
+ this.host = host;
+ }
+
+ public String getPropertyName() {
+ return propertyName;
+ }
+
+ public void setPropertyName(String propertyName) {
+ this.propertyName = propertyName;
+ }
+
+
+ protected Object getPropertyValue() throws IllegalAccessException,
InvocationTargetException, NoSuchMethodException{
+ return PropertyUtils.getProperty(host, propertyName);
+ }
+
+ protected Method getSetterMethod() throws SecurityException, NoSuchMethodException{
+ char sc = propertyName.toCharArray()[0];
+ String us = new String(new char[]{sc});
+ us = us.toUpperCase();
+ String n = propertyName.substring(1);
+ n = ("set" +us + n);
+ return host.getClass().getMethod(n, value.getClass());
+ }
+
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.tools.smooks.model.command.ICommand#execute()
+ */
+ public void execute() {
+// if(!canExecute()) return;
+ try {
+ oldValue = getPropertyValue();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.tools.smooks.model.command.ICommand#canExecute()
+ */
+ public boolean canExecute() {
+ return ( host!=null && value!=null && !execued && propertyName
!= null);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.tools.smooks.model.command.ICommand#canRedo()
+ */
+ public boolean canRedo() {
+ return ( host!=null && value!=null && execued && propertyName
!= null);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.tools.smooks.model.command.ICommand#canUndo()
+ */
+ public boolean canUndo() {
+ return ( host!=null && execued && propertyName != null);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.tools.smooks.model.command.ICommand#redo()
+ */
+ public void redo() {
+ this.execute();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.tools.smooks.model.command.ICommand#undo()
+ */
+ public void undo() {
+// if(!canUndo()) return;
+ try {
+ value = getPropertyValue();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+}
Property changes on:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/Command.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/ICommand.java
===================================================================
---
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/ICommand.java
(rev 0)
+++
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/ICommand.java 2010-07-12
12:19:05 UTC (rev 23370)
@@ -0,0 +1,15 @@
+package org.jboss.tools.smooks.model.command;
+
+public interface ICommand {
+ void execute();
+
+ boolean canExecute();
+
+ boolean canRedo();
+
+ boolean canUndo();
+
+ void redo();
+
+ void undo();
+}
Property changes on:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/ICommand.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/RemoveCommand.java
===================================================================
---
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/RemoveCommand.java
(rev 0)
+++
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/RemoveCommand.java 2010-07-12
12:19:05 UTC (rev 23370)
@@ -0,0 +1,22 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.model.command;
+
+/**
+ * @author Dart
+ *
+ */
+public class RemoveCommand extends Command {
+
+ public RemoveCommand() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ public RemoveCommand(Object host, Object value, String propertyName) {
+ super(host, value, propertyName);
+ // TODO Auto-generated constructor stub
+ }
+
+}
Property changes on:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/RemoveCommand.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/SetCommand.java
===================================================================
---
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/SetCommand.java
(rev 0)
+++
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/SetCommand.java 2010-07-12
12:19:05 UTC (rev 23370)
@@ -0,0 +1,59 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.model.command;
+
+import java.lang.reflect.Method;
+
+/**
+ * @author Dart
+ *
+ */
+public class SetCommand extends Command {
+
+ public SetCommand() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ public SetCommand(Object host, Object value, String propertyName) {
+ super(host, value, propertyName);
+ // TODO Auto-generated constructor stub
+ }
+
+ public void execute(Object host , Object value , String propertyName){
+ this.host = host;
+ this.value = value;
+ this.propertyName = propertyName;
+ execute();
+ }
+
+ @Override
+ public void execute() {
+ super.execute();
+ try {
+ Method setter = getSetterMethod();
+ setter.invoke(host, value);
+// PropertyDescriptor pd = PropertyUtils.getPropertyDescriptor(host, propertyName);
+// pd.getWriteMethod().invoke(host, value);
+ value = null;
+ execued = true;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ @Override
+ public void undo() {
+ super.undo();
+ try {
+ Method setter = getSetterMethod();
+ setter.invoke(host, oldValue);
+// PropertyDescriptor pd = PropertyUtils.getPropertyDescriptor(host, propertyName);
+// pd.setValue(propertyName, oldValue);
+ oldValue = null;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
Property changes on:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/SetCommand.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/SmooksCommandStack.java
===================================================================
---
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/SmooksCommandStack.java
(rev 0)
+++
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/SmooksCommandStack.java 2010-07-12
12:19:05 UTC (rev 23370)
@@ -0,0 +1,65 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.model.command;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+/**
+ * @author Dart
+ *
+ */
+public class SmooksCommandStack {
+ private List<ICommand> executedCommands = null;
+
+ private List<ICommand> undoedCommands = null;
+
+ private ICommand currentExecuteCommand = null;
+
+ public List<ICommand> getExecutedCommands() {
+
+ if(executedCommands == null){
+ executedCommands = new ArrayList<ICommand>();
+ }
+ return executedCommands;
+ }
+
+
+ public List<ICommand> getUndoedCommands() {
+ if(undoedCommands == null){
+ undoedCommands = new ArrayList<ICommand>();
+ }
+ return undoedCommands;
+ }
+
+
+ public void execute(ICommand c){
+ c.execute();
+ addExecutedCommand(c);
+ }
+
+ public void undo(){
+ if(getExecutedCommands().size() > 0){
+
+ }
+ }
+
+ public void addExecutedCommand(ICommand c){
+ getExecutedCommands().add(c);
+ }
+
+ public void removeCommand(ICommand c){
+ getExecutedCommands().remove(c);
+ }
+
+// public boolean isDirty(){
+//
+// }
+
+ public void cleanStack(){
+ getExecutedCommands().clear();
+ currentExecuteCommand = null;
+ }
+}
Property changes on:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.model/src/org/jboss/tools/smooks/model/command/SmooksCommandStack.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain