001: package org.objectweb.salome_tmf.ihm.filtre;
002:
003: import java.util.ArrayList;
004: import java.util.Hashtable;
005:
006: import javax.swing.JTree;
007: import javax.swing.tree.DefaultMutableTreeNode;
008: import javax.swing.tree.TreePath;
009:
010: import org.objectweb.salome_tmf.api.ApiConstants;
011: import org.objectweb.salome_tmf.data.Campaign;
012: import org.objectweb.salome_tmf.data.DataConstants;
013: import org.objectweb.salome_tmf.data.Family;
014: import org.objectweb.salome_tmf.data.SimpleData;
015: import org.objectweb.salome_tmf.data.Test;
016: import org.objectweb.salome_tmf.data.TestList;
017: import org.objectweb.salome_tmf.ihm.IHMConstants;
018:
019: public class StringSimpleDataFiltre implements ISimpleDataFilter {
020: boolean actived = true;
021:
022: String strFiltre = "toto";
023: int filtreType = -1;
024:
025: public boolean pass(Object obj) {
026: if (!actived)
027: return true;
028: if (obj instanceof DefaultMutableTreeNode) {
029: Object data = ((DefaultMutableTreeNode) obj)
030: .getUserObject();
031: if (data instanceof SimpleData) {
032: return isFiltred((SimpleData) data);
033: }
034: }
035: return false;
036: }
037:
038: public void setActived(boolean actived) {
039: this .actived = actived;
040: }
041:
042: public boolean isActived() {
043: return actived;
044: }
045:
046: public void setFilterType(int filtre) {
047: filtreType = filtre;
048: }
049:
050: public int getFilterType() {
051: return filtreType;
052: }
053:
054: public void setFilterStr(String str) {
055: strFiltre = str;
056: }
057:
058: public String getFilterStr() {
059: return strFiltre;
060: }
061:
062: public boolean isFiltred(SimpleData data) {
063: /* Filtre sur les campagnes */
064: if (filtreType == DataConstants.CAMPAIGN) {
065: if (data instanceof Campaign) {
066: String name = ((SimpleData) data).getNameFromModel();
067: if (name.startsWith(strFiltre)) {
068: return true;
069: } else {
070: return false;
071: }
072: }
073: return true;
074: }
075: /* Filtre sur le plan de test */
076: if (data instanceof Family) {
077: String name = ((SimpleData) data).getNameFromModel();
078: if (filtreType == DataConstants.FAMILY) {
079: if (name.startsWith(strFiltre)) {
080: return true;
081: } else {
082: return false;
083: }
084: } else if (filtreType == DataConstants.TESTLIST
085: || filtreType == DataConstants.TEST) {
086: ArrayList listOfSuite = ((Family) data)
087: .getSuiteListFromModel();
088: int size = listOfSuite.size();
089: boolean trouve = false;
090: int cpt = 0;
091: while (cpt < size && !trouve) {
092: TestList pTestList = (TestList) listOfSuite
093: .get(cpt);
094: if (isFiltred(pTestList)) {
095: trouve = true; //Au moins une suite est filtrée
096: }
097: cpt++;
098: }
099: return trouve;
100: }
101: return true; //FILTRE SUITE,TEST
102: }
103: if (data instanceof TestList) {
104: String name = null;
105: if (filtreType == DataConstants.TESTLIST) {
106: name = ((SimpleData) data).getNameFromModel();
107: if (name != null) {
108: if (name.startsWith(strFiltre)) {
109: return true;
110: } else {
111: return false;
112: }
113: }
114: } else if (filtreType == DataConstants.FAMILY) {
115: name = ((TestList) data).getFamilyFromModel()
116: .getNameFromModel();
117: if (name != null) {
118: if (name.startsWith(strFiltre)) {
119: return true;
120: } else {
121: return false;
122: }
123: }
124: } else if (filtreType == DataConstants.TEST) {
125: ArrayList listOfTest = ((TestList) data)
126: .getTestListFromModel();
127: int size = listOfTest.size();
128: boolean trouve = false;
129: int cpt = 0;
130: while (cpt < size && !trouve) {
131: Test pTest = (Test) listOfTest.get(cpt);
132: if (isFiltred(pTest)) {
133: trouve = true; //Au moins un Test est filtrée
134: }
135: cpt++;
136: }
137: return trouve;
138: }
139:
140: return true; //FILTRE TEST
141:
142: }
143: if (data instanceof Test) {
144: String name = null;
145: if (filtreType == DataConstants.TEST) {
146: name = ((SimpleData) data).getNameFromModel();
147: } else if (filtreType == DataConstants.TESTLIST) {
148: name = ((Test) data).getTestListFromModel()
149: .getNameFromModel();
150: } else if (filtreType == DataConstants.TESTLIST) {
151: name = ((Test) data).getTestListFromModel()
152: .getFamilyFromModel().getNameFromModel();
153: }
154: if (name != null) {
155: if (name.startsWith(strFiltre)) {
156: return true;
157: } else {
158: return false;
159: }
160: }
161: return true; // ??
162: }
163: return true; //campagne ....
164: }
165:
166: public void reInit() {
167: filtreType = -1;
168: actived = false;
169: }
170:
171: }
|