1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.vectomatic.svg.edit.client.command;
19
20 import org.vectomatic.dom.svg.utils.SVGConstants;
21 import org.vectomatic.svg.edit.client.engine.SVGModel;
22 import org.vectomatic.svg.edit.client.model.ModelConstants;
23 import org.vectomatic.svg.edit.client.model.svg.SVGElementModel;
24
25 import com.extjs.gxt.ui.client.data.BeanModel;
26 import com.extjs.gxt.ui.client.data.BeanModelLookup;
27 import com.extjs.gxt.ui.client.util.Format;
28
29
30
31
32
33
34 public class GenericAddCommand extends CommandBase {
35 protected SVGElementModel model;
36 protected SVGElementModel parentModel;
37 protected String name;
38 protected SVGModel owner;
39
40 public GenericAddCommand(CommandFactoryBase factory, SVGElementModel model) {
41 super(factory);
42 this.model = model;
43 owner = model.getOwner();
44 parentModel = (SVGElementModel)model.getParent();
45 name = model.<String>get(SVGConstants.SVG_TITLE_TAG);
46 }
47
48 @Override
49 public String getDescription() {
50 return Format.substitute(ModelConstants.INSTANCE.addCmd(), name);
51 }
52
53 @Override
54 public void commit() {
55 owner.add(parentModel, model);
56 }
57
58 @Override
59 public void rollback() {
60 owner.remove(model);
61 }
62
63 @Override
64 public BeanModel asModel() {
65 return BeanModelLookup.get().getFactory(GenericAddCommand.class).createModel(this);
66 }
67 }