Lines 69-74
Link Here
|
69 |
import javax.swing.Action; |
69 |
import javax.swing.Action; |
70 |
import javax.swing.JComponent; |
70 |
import javax.swing.JComponent; |
71 |
import javax.swing.SwingUtilities; |
71 |
import javax.swing.SwingUtilities; |
|
|
72 |
import javax.swing.table.TableCellEditor; |
73 |
import javax.swing.table.TableCellRenderer; |
72 |
|
74 |
|
73 |
import org.netbeans.modules.viewmodel.AsynchronousModel; |
75 |
import org.netbeans.modules.viewmodel.AsynchronousModel; |
74 |
import org.netbeans.modules.viewmodel.DefaultTreeExpansionManager; |
76 |
import org.netbeans.modules.viewmodel.DefaultTreeExpansionManager; |
Lines 241-247
Link Here
|
241 |
// ; or the models directly |
243 |
// ; or the models directly |
242 |
boolean hasLists = false; |
244 |
boolean hasLists = false; |
243 |
int modelsSize = models.size(); |
245 |
int modelsSize = models.size(); |
244 |
if (11 <= modelsSize && modelsSize <= 14) { |
246 |
if (11 <= modelsSize && modelsSize <= 15) { |
245 |
Iterator it = models.iterator (); |
247 |
Iterator it = models.iterator (); |
246 |
boolean failure = false; |
248 |
boolean failure = false; |
247 |
while (it.hasNext ()) { |
249 |
while (it.hasNext ()) { |
Lines 277-302
Link Here
|
277 |
// ml.asynchModels = (List<AsynchronousModel>) models.get(12); |
279 |
// ml.asynchModels = (List<AsynchronousModel>) models.get(12); |
278 |
if (modelsSize > 12) { // AsynchronousModelFilter |
280 |
if (modelsSize > 12) { // AsynchronousModelFilter |
279 |
ml.asynchModelFilters = (List<AsynchronousModelFilter>) models.get(12); |
281 |
ml.asynchModelFilters = (List<AsynchronousModelFilter>) models.get(12); |
|
|
282 |
if (modelsSize > 13) { |
283 |
ml.tableRendererModels = (List<TableRendererModel>) models.get(13); |
284 |
if (modelsSize > 14) { |
285 |
ml.tableRendererModelFilters = (List<TableRendererModelFilter>) models.get(14); |
286 |
} |
287 |
} |
280 |
} |
288 |
} |
281 |
//} |
289 |
//} |
282 |
} else { |
|
|
283 |
ml.treeExpansionModelFilters = Collections.emptyList(); |
284 |
} |
290 |
} |
285 |
//treeExpansionModelFilters = (models.size() > 11) ? (List<TreeExpansionModelFilter>) models.get(11) : (List<TreeExpansionModelFilter>) Collections.EMPTY_LIST; |
291 |
//treeExpansionModelFilters = (models.size() > 11) ? (List<TreeExpansionModelFilter>) models.get(11) : (List<TreeExpansionModelFilter>) Collections.EMPTY_LIST; |
286 |
} else { // We have the models, need to find out what they implement |
292 |
} else { // We have the models, need to find out what they implement |
287 |
ml.treeModels = new LinkedList<TreeModel> (); |
|
|
288 |
ml.treeModelFilters = new LinkedList<TreeModelFilter> (); |
289 |
ml.treeExpansionModels = new LinkedList<TreeExpansionModel> (); |
290 |
ml.treeExpansionModelFilters = new LinkedList<TreeExpansionModelFilter> (); |
291 |
ml.nodeModels = new LinkedList<NodeModel> (); |
292 |
ml.nodeModelFilters = new LinkedList<NodeModelFilter> (); |
293 |
ml.tableModels = new LinkedList<TableModel> (); |
294 |
ml.tableModelFilters = new LinkedList<TableModelFilter> (); |
295 |
ml.nodeActionsProviders = new LinkedList<NodeActionsProvider> (); |
296 |
ml.nodeActionsProviderFilters = new LinkedList<NodeActionsProviderFilter> (); |
297 |
//ml.asynchModels = new LinkedList<AsynchronousModel> (); |
298 |
ml.asynchModelFilters = new LinkedList<AsynchronousModelFilter> (); |
299 |
ml.columnModels = new LinkedList<ColumnModel> (); |
300 |
otherModels = (List<? extends Model>) models; |
293 |
otherModels = (List<? extends Model>) models; |
301 |
} |
294 |
} |
302 |
|
295 |
|
Lines 381-386
Link Here
|
381 |
new DefaultAsynchronousModel(),//new DelegatingAsynchronousModel (ml.asynchModels), |
374 |
new DefaultAsynchronousModel(),//new DelegatingAsynchronousModel (ml.asynchModels), |
382 |
ml.asynchModelFilters |
375 |
ml.asynchModelFilters |
383 |
), |
376 |
), |
|
|
377 |
createCompoundTableRendererModel ( |
378 |
new DelegatingTableRendererModel(ml.tableRendererModels), |
379 |
ml.tableRendererModelFilters |
380 |
), |
384 |
propertiesHelpID |
381 |
propertiesHelpID |
385 |
); |
382 |
); |
386 |
if (defaultExpansionModel != null) { |
383 |
if (defaultExpansionModel != null) { |
Lines 515-520
Link Here
|
515 |
return tm; |
512 |
return tm; |
516 |
} |
513 |
} |
517 |
|
514 |
|
|
|
515 |
/** |
516 |
* Creates {@link org.netbeans.spi.viewmodel.TableModel} for given TableModel and |
517 |
* {@link org.netbeans.spi.viewmodel.TableModelFilter}. |
518 |
* |
519 |
* @param originalTableModel a original table model |
520 |
* @param tableModelFilters a list of table model filters |
521 |
* |
522 |
* @returns compund table model |
523 |
*/ |
524 |
private static TableRendererModel createCompoundTableRendererModel ( |
525 |
TableRendererModel originalTableModel, |
526 |
List tableModelFilters |
527 |
) { |
528 |
TableRendererModel tm = originalTableModel; |
529 |
int i, k = tableModelFilters.size (); |
530 |
for (i = 0; i < k; i++) |
531 |
tm = new CompoundTableRendererModel ( |
532 |
tm, |
533 |
(TableRendererModelFilter) tableModelFilters.get (i) |
534 |
); |
535 |
return tm; |
536 |
} |
537 |
|
518 |
/** |
538 |
/** |
519 |
* Creates {@link org.netbeans.spi.viewmodel.NodeActionsProvider} for given NodeActionsProvider and |
539 |
* Creates {@link org.netbeans.spi.viewmodel.NodeActionsProvider} for given NodeActionsProvider and |
520 |
* {@link org.netbeans.spi.viewmodel.NodeActionsProviderFilter}. |
540 |
* {@link org.netbeans.spi.viewmodel.NodeActionsProviderFilter}. |
Lines 1312-1317
Link Here
|
1312 |
} |
1332 |
} |
1313 |
|
1333 |
|
1314 |
/** |
1334 |
/** |
|
|
1335 |
* Creates {@link org.netbeans.spi.viewmodel.TableRendererModel} for given TableRendererModel and |
1336 |
* {@link org.netbeans.spi.viewmodel.TableRendererModelFilter}. |
1337 |
*/ |
1338 |
private final static class CompoundTableRendererModel implements TableRendererModel, ModelListener { |
1339 |
|
1340 |
|
1341 |
private TableRendererModel model; |
1342 |
private TableRendererModelFilter filter; |
1343 |
|
1344 |
private final Collection<ModelListener> modelListeners = new HashSet<ModelListener>(); |
1345 |
|
1346 |
|
1347 |
/** |
1348 |
* Creates {@link org.netbeans.spi.viewmodel.TableRendererModel} for given TableRendererModel and |
1349 |
* {@link org.netbeans.spi.viewmodel.TableRendererModelFilter}. |
1350 |
*/ |
1351 |
CompoundTableRendererModel (TableRendererModel model, TableRendererModelFilter filter) { |
1352 |
this.model = model; |
1353 |
this.filter = filter; |
1354 |
} |
1355 |
|
1356 |
@Override |
1357 |
public boolean canRenderCell(Object node, String columnID) throws UnknownTypeException { |
1358 |
return filter.canRenderCell(model, node, columnID); |
1359 |
} |
1360 |
|
1361 |
@Override |
1362 |
public TableCellRenderer getCellRenderer(Object node, String columnID) throws UnknownTypeException { |
1363 |
return filter.getCellRenderer(model, node, columnID); |
1364 |
} |
1365 |
|
1366 |
@Override |
1367 |
public boolean canEditCell(Object node, String columnID) throws UnknownTypeException { |
1368 |
return filter.canEditCell(model, node, columnID); |
1369 |
} |
1370 |
|
1371 |
@Override |
1372 |
public TableCellEditor getCellEditor(Object node, String columnID) throws UnknownTypeException { |
1373 |
return filter.getCellEditor(model, node, columnID); |
1374 |
} |
1375 |
|
1376 |
/** |
1377 |
* Registers given listener. |
1378 |
* |
1379 |
* @param l the listener to add |
1380 |
*/ |
1381 |
public void addModelListener (ModelListener l) { |
1382 |
synchronized (modelListeners) { |
1383 |
if (modelListeners.size() == 0) { |
1384 |
filter.addModelListener (this); |
1385 |
model.addModelListener (this); |
1386 |
} |
1387 |
modelListeners.add(l); |
1388 |
} |
1389 |
} |
1390 |
|
1391 |
/** |
1392 |
* Unregisters given listener. |
1393 |
* |
1394 |
* @param l the listener to remove |
1395 |
*/ |
1396 |
public void removeModelListener (ModelListener l) { |
1397 |
synchronized (modelListeners) { |
1398 |
modelListeners.remove(l); |
1399 |
if (modelListeners.size() == 0) { |
1400 |
filter.removeModelListener (this); |
1401 |
model.removeModelListener (this); |
1402 |
} |
1403 |
} |
1404 |
} |
1405 |
|
1406 |
public void modelChanged(ModelEvent event) { |
1407 |
if (event instanceof ModelEvent.NodeChanged && (event.getSource() instanceof NodeModel || event.getSource() instanceof NodeModelFilter)) { |
1408 |
// CompoundNodeModel.modelChanged() takes this. |
1409 |
return ; |
1410 |
} |
1411 |
if (event instanceof ModelEvent.TreeChanged && |
1412 |
(event.getSource() instanceof TreeModel || event.getSource() instanceof TreeModelFilter)) { |
1413 |
// CompoundTreeModel.modelChanged() takes this. |
1414 |
return ; |
1415 |
} |
1416 |
ModelEvent newEvent = translateEvent(event, this); |
1417 |
Collection<ModelListener> listeners; |
1418 |
synchronized (modelListeners) { |
1419 |
listeners = new ArrayList<ModelListener>(modelListeners); |
1420 |
} |
1421 |
for (Iterator<ModelListener> it = listeners.iterator(); it.hasNext(); ) { |
1422 |
it.next().modelChanged(newEvent); |
1423 |
} |
1424 |
} |
1425 |
|
1426 |
@Override |
1427 |
public String toString () { |
1428 |
return super.toString () + "\n" + toString (" "); |
1429 |
} |
1430 |
|
1431 |
public String toString (String n) { |
1432 |
if (model instanceof CompoundTableRendererModel) |
1433 |
return n + filter + "\n" + |
1434 |
((CompoundTableRendererModel) model).toString (n + " "); |
1435 |
if (model instanceof DelegatingTableRendererModel) |
1436 |
return n + filter + "\n" + |
1437 |
((DelegatingTableRendererModel) model).toString (n + " "); |
1438 |
return n + filter + "\n" + |
1439 |
n + " " + model; |
1440 |
} |
1441 |
|
1442 |
} |
1443 |
|
1444 |
/** |
1315 |
* Creates one {@link org.netbeans.spi.viewmodel.TreeModel} |
1445 |
* Creates one {@link org.netbeans.spi.viewmodel.TreeModel} |
1316 |
* from given list of TreeModels. DelegatingTreeModel asks all underlaying |
1446 |
* from given list of TreeModels. DelegatingTreeModel asks all underlaying |
1317 |
* models for each concrete parameter, and returns first returned value. |
1447 |
* models for each concrete parameter, and returns first returned value. |
Lines 1943-1948
Link Here
|
1943 |
sb.append (models [i]); |
2073 |
sb.append (models [i]); |
1944 |
return new String (sb); |
2074 |
return new String (sb); |
1945 |
} |
2075 |
} |
|
|
2076 |
} |
2077 |
|
2078 |
/** |
2079 |
* Creates one {@link org.netbeans.spi.viewmodel.TableRendererModel} |
2080 |
* from given list of TableRendererModel. DelegatingTableRendererModel asks all underlaying |
2081 |
* models for each concrete parameter, and returns first returned value. |
2082 |
*/ |
2083 |
private final static class DelegatingTableRendererModel implements TableRendererModel { |
2084 |
|
2085 |
private TableRendererModel[] models; |
2086 |
private HashMap<String, TableRendererModel> classNameToModel = new HashMap<String, TableRendererModel>(); |
2087 |
|
2088 |
|
2089 |
/** |
2090 |
* Creates new instance of DelegatingTableModel for given list of |
2091 |
* TableModels. |
2092 |
* |
2093 |
* @param models a list of TableModels |
2094 |
*/ |
2095 |
DelegatingTableRendererModel (List<TableRendererModel> models) { |
2096 |
this (convert (models)); |
2097 |
} |
2098 |
|
2099 |
private static TableRendererModel[] convert (List<TableRendererModel> l) { |
2100 |
TableRendererModel[] models = new TableRendererModel [l.size ()]; |
2101 |
return l.toArray (models); |
2102 |
} |
2103 |
|
2104 |
/** |
2105 |
* Creates new instance of DelegatingTableModel for given array of |
2106 |
* TableModels. |
2107 |
* |
2108 |
* @param models a array of TableModels |
2109 |
*/ |
2110 |
DelegatingTableRendererModel (TableRendererModel[] models) { |
2111 |
this.models = models; |
2112 |
} |
2113 |
|
2114 |
@Override |
2115 |
public boolean canRenderCell(Object node, String columnID) throws UnknownTypeException { |
2116 |
TableRendererModel model = classNameToModel.get ( |
2117 |
node.getClass ().getName () |
2118 |
); |
2119 |
if (model != null) |
2120 |
try { |
2121 |
return model.canRenderCell (node, columnID); |
2122 |
} catch (UnknownTypeException e) { |
2123 |
} |
2124 |
int i, k = models.length; |
2125 |
for (i = 0; i < k; i++) { |
2126 |
try { |
2127 |
boolean cr = models [i].canRenderCell (node, columnID); |
2128 |
classNameToModel.put (node.getClass ().getName (), models [i]); |
2129 |
return cr; |
2130 |
} catch (UnknownTypeException e) { |
2131 |
} |
2132 |
} |
2133 |
throw new UnknownTypeException (node); |
2134 |
} |
2135 |
|
2136 |
@Override |
2137 |
public TableCellRenderer getCellRenderer(Object node, String columnID) throws UnknownTypeException { |
2138 |
TableRendererModel model = classNameToModel.get ( |
2139 |
node.getClass ().getName () |
2140 |
); |
2141 |
if (model != null) |
2142 |
try { |
2143 |
return model.getCellRenderer (node, columnID); |
2144 |
} catch (UnknownTypeException e) { |
2145 |
} |
2146 |
int i, k = models.length; |
2147 |
for (i = 0; i < k; i++) { |
2148 |
try { |
2149 |
TableCellRenderer cr = models [i].getCellRenderer (node, columnID); |
2150 |
classNameToModel.put (node.getClass ().getName (), models [i]); |
2151 |
return cr; |
2152 |
} catch (UnknownTypeException e) { |
2153 |
} |
2154 |
} |
2155 |
throw new UnknownTypeException (node); |
2156 |
} |
2157 |
|
2158 |
@Override |
2159 |
public boolean canEditCell(Object node, String columnID) throws UnknownTypeException { |
2160 |
TableRendererModel model = classNameToModel.get ( |
2161 |
node.getClass ().getName () |
2162 |
); |
2163 |
if (model != null) |
2164 |
try { |
2165 |
return model.canEditCell (node, columnID); |
2166 |
} catch (UnknownTypeException e) { |
2167 |
} |
2168 |
int i, k = models.length; |
2169 |
for (i = 0; i < k; i++) { |
2170 |
try { |
2171 |
boolean ce = models [i].canEditCell (node, columnID); |
2172 |
classNameToModel.put (node.getClass ().getName (), models [i]); |
2173 |
return ce; |
2174 |
} catch (UnknownTypeException e) { |
2175 |
} |
2176 |
} |
2177 |
throw new UnknownTypeException (node); |
2178 |
} |
2179 |
|
2180 |
@Override |
2181 |
public TableCellEditor getCellEditor(Object node, String columnID) throws UnknownTypeException { |
2182 |
TableRendererModel model = classNameToModel.get ( |
2183 |
node.getClass ().getName () |
2184 |
); |
2185 |
if (model != null) |
2186 |
try { |
2187 |
return model.getCellEditor (node, columnID); |
2188 |
} catch (UnknownTypeException e) { |
2189 |
} |
2190 |
int i, k = models.length; |
2191 |
for (i = 0; i < k; i++) { |
2192 |
try { |
2193 |
TableCellEditor ce = models [i].getCellEditor (node, columnID); |
2194 |
classNameToModel.put (node.getClass ().getName (), models [i]); |
2195 |
return ce; |
2196 |
} catch (UnknownTypeException e) { |
2197 |
} |
2198 |
} |
2199 |
throw new UnknownTypeException (node); |
2200 |
} |
2201 |
|
2202 |
/** |
2203 |
* Registers given listener. |
2204 |
* |
2205 |
* @param l the listener to add |
2206 |
*/ |
2207 |
@Override |
2208 |
public void addModelListener (ModelListener l) { |
2209 |
int i, k = models.length; |
2210 |
for (i = 0; i < k; i++) |
2211 |
models [i].addModelListener (l); |
2212 |
} |
2213 |
|
2214 |
/** |
2215 |
* Registers given listener. |
2216 |
* |
2217 |
* @param l the listener to add |
2218 |
*/ |
2219 |
void addModelListener (ModelListener l, Set<Model> modelsListenersAddedTo) { |
2220 |
int i, k = models.length; |
2221 |
for (i = 0; i < k; i++) { |
2222 |
TableRendererModel m = models [i]; |
2223 |
if (!modelsListenersAddedTo.add(m)) { |
2224 |
continue; |
2225 |
} |
2226 |
if (m instanceof DelegatingTableRendererModel) { |
2227 |
((DelegatingTableRendererModel) m).addModelListener(l, modelsListenersAddedTo); |
2228 |
} else { |
2229 |
m.addModelListener (l); |
2230 |
} |
2231 |
} |
2232 |
} |
2233 |
|
2234 |
/** |
2235 |
* Unregisters given listener. |
2236 |
* |
2237 |
* @param l the listener to remove |
2238 |
*/ |
2239 |
@Override |
2240 |
public void removeModelListener (ModelListener l) { |
2241 |
int i, k = models.length; |
2242 |
for (i = 0; i < k; i++) |
2243 |
models [i].removeModelListener (l); |
2244 |
} |
2245 |
|
2246 |
@Override |
2247 |
public String toString () { |
2248 |
return super.toString () + "\n" + toString (" "); |
2249 |
} |
2250 |
|
2251 |
public String toString (String n) { |
2252 |
int i, k = models.length - 1; |
2253 |
if (k == -1) return ""; |
2254 |
StringBuffer sb = new StringBuffer (); |
2255 |
for (i = 0; i < k; i++) { |
2256 |
sb.append (n); |
2257 |
sb.append (models [i]); |
2258 |
sb.append ('\n'); |
2259 |
} |
2260 |
sb.append (n); |
2261 |
sb.append (models [i]); |
2262 |
return new String (sb); |
2263 |
} |
2264 |
|
1946 |
} |
2265 |
} |
1947 |
|
2266 |
|
1948 |
/** |
2267 |
/** |
Lines 3340-3346
Link Here
|
3340 |
* @author Jan Jancura |
3659 |
* @author Jan Jancura |
3341 |
*/ |
3660 |
*/ |
3342 |
public static final class CompoundModel implements ReorderableTreeModel, |
3661 |
public static final class CompoundModel implements ReorderableTreeModel, |
3343 |
ExtendedNodeModel, CheckNodeModel, DnDNodeModel, NodeActionsProvider, TableModel, TreeExpansionModel { |
3662 |
ExtendedNodeModel, |
|
|
3663 |
CheckNodeModel, |
3664 |
DnDNodeModel, |
3665 |
NodeActionsProvider, |
3666 |
TableModel, |
3667 |
TreeExpansionModel, |
3668 |
TableRendererModel { |
3344 |
|
3669 |
|
3345 |
private ReorderableTreeModel treeModel; |
3670 |
private ReorderableTreeModel treeModel; |
3346 |
private ExtendedNodeModel nodeModel; |
3671 |
private ExtendedNodeModel nodeModel; |
Lines 3349-3354
Link Here
|
3349 |
private NodeActionsProvider nodeActionsProvider; |
3674 |
private NodeActionsProvider nodeActionsProvider; |
3350 |
private ColumnModel[] columnModels; |
3675 |
private ColumnModel[] columnModels; |
3351 |
private TableModel tableModel; |
3676 |
private TableModel tableModel; |
|
|
3677 |
private TableRendererModel tableRendererModel; |
3352 |
private TreeExpansionModel treeExpansionModel; |
3678 |
private TreeExpansionModel treeExpansionModel; |
3353 |
private AsynchronousModel asynchModel; |
3679 |
private AsynchronousModel asynchModel; |
3354 |
|
3680 |
|
Lines 3380-3385
Link Here
|
3380 |
List<ColumnModel> columnModels, |
3706 |
List<ColumnModel> columnModels, |
3381 |
TableModel tableModel, |
3707 |
TableModel tableModel, |
3382 |
AsynchronousModel asynchModel, |
3708 |
AsynchronousModel asynchModel, |
|
|
3709 |
TableRendererModel tableRendererModel, |
3383 |
String propertiesHelpID |
3710 |
String propertiesHelpID |
3384 |
) { |
3711 |
) { |
3385 |
if (treeModel == null) throw new NullPointerException (); |
3712 |
if (treeModel == null) throw new NullPointerException (); |
Lines 3398-3403
Link Here
|
3398 |
this.dndNodeModel = (DnDNodeModel) nodeModel; |
3725 |
this.dndNodeModel = (DnDNodeModel) nodeModel; |
3399 |
} |
3726 |
} |
3400 |
this.tableModel = tableModel; |
3727 |
this.tableModel = tableModel; |
|
|
3728 |
this.tableRendererModel = tableRendererModel; |
3401 |
this.nodeActionsProvider = nodeActionsProvider; |
3729 |
this.nodeActionsProvider = nodeActionsProvider; |
3402 |
this.columnModels = columnModels.toArray ( |
3730 |
this.columnModels = columnModels.toArray ( |
3403 |
new ColumnModel [columnModels.size ()] |
3731 |
new ColumnModel [columnModels.size ()] |
Lines 3860-3865
Link Here
|
3860 |
|
4188 |
|
3861 |
public Executor asynchronous(CALL asynchCall, Object node) throws UnknownTypeException { |
4189 |
public Executor asynchronous(CALL asynchCall, Object node) throws UnknownTypeException { |
3862 |
return asynchModel.asynchronous(asynchCall, node); |
4190 |
return asynchModel.asynchronous(asynchCall, node); |
|
|
4191 |
} |
4192 |
|
4193 |
// TableRendererModel |
4194 |
|
4195 |
@Override |
4196 |
public boolean canRenderCell(Object node, String columnID) throws UnknownTypeException { |
4197 |
if (tableRendererModel != null) { |
4198 |
return tableRendererModel.canRenderCell(node, columnID); |
4199 |
} else { |
4200 |
return false; |
4201 |
} |
4202 |
} |
4203 |
|
4204 |
@Override |
4205 |
public TableCellRenderer getCellRenderer(Object node, String columnID) throws UnknownTypeException { |
4206 |
if (tableRendererModel != null) { |
4207 |
return tableRendererModel.getCellRenderer(node, columnID); |
4208 |
} else { |
4209 |
return null; |
4210 |
} |
4211 |
} |
4212 |
|
4213 |
@Override |
4214 |
public boolean canEditCell(Object node, String columnID) throws UnknownTypeException { |
4215 |
if (tableRendererModel != null) { |
4216 |
return tableRendererModel.canEditCell(node, columnID); |
4217 |
} else { |
4218 |
return false; |
4219 |
} |
4220 |
} |
4221 |
|
4222 |
@Override |
4223 |
public TableCellEditor getCellEditor(Object node, String columnID) throws UnknownTypeException { |
4224 |
if (tableRendererModel != null) { |
4225 |
return tableRendererModel.getCellEditor(node, columnID); |
4226 |
} else { |
4227 |
return null; |
4228 |
} |
3863 |
} |
4229 |
} |
3864 |
|
4230 |
|
3865 |
} |
4231 |
} |
Lines 3879-3884
Link Here
|
3879 |
public List<ColumnModel> columnModels = Collections.emptyList(); |
4245 |
public List<ColumnModel> columnModels = Collections.emptyList(); |
3880 |
//public List<AsynchronousModel> asynchModels = Collections.emptyList(); |
4246 |
//public List<AsynchronousModel> asynchModels = Collections.emptyList(); |
3881 |
public List<AsynchronousModelFilter> asynchModelFilters = Collections.emptyList(); |
4247 |
public List<AsynchronousModelFilter> asynchModelFilters = Collections.emptyList(); |
|
|
4248 |
public List<TableRendererModel> tableRendererModels = Collections.emptyList(); |
4249 |
public List<TableRendererModelFilter> tableRendererModelFilters = Collections.emptyList(); |
3882 |
|
4250 |
|
3883 |
public void addOtherModels(List<? extends Model> otherModels) { |
4251 |
public void addOtherModels(List<? extends Model> otherModels) { |
3884 |
Iterator it = otherModels.iterator (); |
4252 |
Iterator it = otherModels.iterator (); |
Lines 3929-3934
Link Here
|
3929 |
else |
4297 |
else |
3930 |
tableModelFilters.add(0, (TableModelFilter) model); |
4298 |
tableModelFilters.add(0, (TableModelFilter) model); |
3931 |
} |
4299 |
} |
|
|
4300 |
if (model instanceof TableRendererModel && !tableRendererModels.contains((TableRendererModel) model)) { |
4301 |
tableRendererModels = new ArrayList<TableRendererModel>(tableRendererModels); |
4302 |
tableRendererModels.add((TableRendererModel) model); |
4303 |
} |
4304 |
if (model instanceof TableRendererModelFilter && !tableRendererModelFilters.contains((TableRendererModelFilter) model)) { |
4305 |
tableRendererModelFilters = new ArrayList<TableRendererModelFilter>(tableRendererModelFilters); |
4306 |
if (first) |
4307 |
tableRendererModelFilters.add((TableRendererModelFilter) model); |
4308 |
else |
4309 |
tableRendererModelFilters.add(0, (TableRendererModelFilter) model); |
4310 |
} |
3932 |
if (model instanceof NodeActionsProvider && !nodeActionsProviders.contains((NodeActionsProvider) model)) { |
4311 |
if (model instanceof NodeActionsProvider && !nodeActionsProviders.contains((NodeActionsProvider) model)) { |
3933 |
nodeActionsProviders = new ArrayList<NodeActionsProvider>(nodeActionsProviders); |
4312 |
nodeActionsProviders = new ArrayList<NodeActionsProvider>(nodeActionsProviders); |
3934 |
nodeActionsProviders.add((NodeActionsProvider) model); |
4313 |
nodeActionsProviders.add((NodeActionsProvider) model); |