2ac8cd888c004960f9135606b2d6c19b97591806
[taxeditor.git] / src / eu / etaxonomy / taxeditor / SimpleModel.java
1 package eu.etaxonomy.taxeditor;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import eu.etaxonomy.cdm.model.name.TaxonName;
7 import eu.etaxonomy.cdm.api.service.*;
8 import eu.etaxonomy.cdm.api.application.CdmApplicationController;
9
10
11 public class SimpleModel {
12 private ArrayList modelListeners;
13 private ArrayList objects;
14 public SimpleModel() {
15 modelListeners = new ArrayList();
16 initialize();
17 }
18 public void addModelListener(IModelListener listener) {
19 if (!modelListeners.contains(listener))
20 modelListeners.add(listener);
21 }
22 public void removeModelListener(IModelListener listener) {
23 modelListeners.remove(listener);
24 }
25 public void fireModelChanged(Object[] objects, String type, String property) {
26 for (int i = 0; i < modelListeners.size(); i++) {
27 ((IModelListener) modelListeners.get(i)).modelChanged(objects,
28 type, property);
29 }
30 }
31 public Object[] getContents() {
32 return objects.toArray();
33 }
34 private void initialize() {
35 try {
36 //TODO Andreas
37 List<TaxonName> tnList = new ArrayList<TaxonName>();
38 CdmApplicationController app = new CdmApplicationController();
39 NameService ns = app.getNameService();
40 tnList = ns.getAllNames();
41
42 objects = new ArrayList();
43 for (TaxonName tn: tnList){
44 NamedObject[] objects = {
45 new Name(tn.getName(), tn.getGenus(),tn.getSpecificEpithet())
46 };
47
48
49 // NamedObject[] objects = {
50 // new Name(tnList.get(0).getName(), tnList.get(0).getGenus(),tnList.get(0).getInfraSpecificEpithet()),
51 // new Name(tnList.get(1).getName(), tnList.get(1).getGenus(),tnList.get(1).getInfraSpecificEpithet()),
52 // new Name(tnList.get(2).getName(), tnList.get(2).getGenus(),tnList.get(2).getInfraSpecificEpithet()),
53 //
54 // new Name("Pilosella piloselloides (Vill.) Soják", "Pilosella", "piloselloides"),
55 // new Name("Pilosella pavichii (Heuff.) Arv.-Touv.", "Pilosella", "pavichii"),
56 // new Name("Pilosella vahlii (Froel.) F. W. Schultz & Sch. Bip.", "Pilosella", "vahlii")
57 // /*new TypeOne(Messages.getString("SimpleModel.t1_i1"), 2, true, Messages.getString("SimpleModel.text1")), //$NON-NLS-1$ //$NON-NLS-2$
58 // new TypeOne(Messages.getString("SimpleModel.t1_i2"), 1, false, Messages.getString("SimpleModel.text2")), //$NON-NLS-1$ //$NON-NLS-2$
59 // new TypeOne(Messages.getString("SimpleModel.t1_i3"), 3, true, Messages.getString("SimpleModel.text3")), //$NON-NLS-1$ //$NON-NLS-2$
60 // new TypeOne(Messages.getString("SimpleModel.t1_i4"), 0, false, Messages.getString("SimpleModel.text4")), //$NON-NLS-1$ //$NON-NLS-2$
61 // new TypeOne(Messages.getString("SimpleModel.t1_i5"), 1, true, Messages.getString("SimpleModel.text5")), //$NON-NLS-1$ //$NON-NLS-2$
62 // new TypeTwo(Messages.getString("SimpleModel.t2_i1"), false, true), //$NON-NLS-1$
63 // new TypeTwo(Messages.getString("SimpleModel.t2_i2"), true, false)*/
64 // }; //$NON-NLS-1$
65
66
67 add(objects, false);
68 }
69 } catch (RuntimeException e) {
70 //logger.error("Error when initializing SimpleModel");
71 System.out.println(e.getMessage());
72 e.printStackTrace();
73 }
74 }
75 public void add(NamedObject[] objs, boolean notify) {
76 for (int i = 0; i < objs.length; i++) {
77 objects.add(objs[i]);
78 objs[i].setModel(this);
79 }
80 if (notify)
81 fireModelChanged(objs, IModelListener.ADDED, ""); //$NON-NLS-1$
82 }
83
84 // public void add(ArrayList<TaxonName> tns, boolean notify) {
85 // for (int i = 0; i < tns.size(); i++) {
86 // objects.add(tns.get(i));
87 // //tns[i].setModel(this);
88 // }
89 // //if (notify)
90 // //fireModelChanged(tns, IModelListener.ADDED, ""); //$NON-NLS-1$
91 // }
92
93 public void remove(NamedObject[] objs, boolean notify) {
94 for (int i = 0; i < objs.length; i++) {
95 objects.remove(objs[i]);
96 objs[i].setModel(null);
97 }
98 if (notify)
99 fireModelChanged(objs, IModelListener.REMOVED, ""); //$NON-NLS-1$
100 }
101 }