| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| package org.netbeans.spi.debugger.jpda; |
| |
| import javax.swing.Action; |
| import org.netbeans.api.debugger.jpda.Variable; |
| import org.netbeans.spi.viewmodel.NodeActionsProvider; |
| import org.netbeans.spi.viewmodel.NodeModel; |
| import org.netbeans.spi.viewmodel.TableModel; |
| import org.netbeans.spi.viewmodel.TreeModel; |
| import org.netbeans.spi.viewmodel.UnknownTypeException; |
| |
| |
| /** |
| * Default "empty" implementation of {@link VariablesFilter} returns original |
| * values (name, icon, fields, ...) for given variable. |
| * |
| * @author Jan Jancura |
| */ |
| public abstract class VariablesFilterAdapter extends VariablesFilter { |
| |
| |
| /** |
| * Returns set of fully quilified class names (like java.lang.String) this |
| * filter is registerred to. |
| * |
| * @return set of fully quilified class names |
| */ |
| public abstract String[] getSupportedAncestors (); |
| |
| /** |
| * Returns set of fully quilified class names (like java.lang.String) this |
| * filter is registerred to. |
| * |
| * @return set of fully quilified class names |
| */ |
| public abstract String[] getSupportedTypes (); |
| |
| /** |
| * Returns filtered children for given variable on given indexes. |
| * |
| * @param original the original tree model |
| * @param variable a variable of returned fields |
| * @throws NoInformationException if the set of children can not be |
| * resolved |
| * @throws ComputingException if the children resolving process |
| * is time consuming, and will be performed off-line |
| * @throws UnknownTypeException if this TreeModelFilter implementation is not |
| * able to resolve dchildren for given node type |
| * |
| * @return children for given parent on given indexes |
| */ |
| public Object[] getChildren ( |
| TreeModel original, |
| Variable variable, |
| int from, |
| int to |
| ) throws UnknownTypeException { |
| return original.getChildren (variable, from, to); |
| } |
| |
| /** |
| * Returns number of filtered children for given variable. |
| * |
| * @param original the original tree model |
| * @param variable a variable of returned fields |
| * |
| * @throws NoInformationException if the set of children can not be |
| * resolved |
| * @throws ComputingException if the children resolving process |
| * is time consuming, and will be performed off-line |
| * @throws UnknownTypeException if this TreeModelFilter implementation is not |
| * able to resolve dchildren for given node type |
| * |
| * @return number of filtered children for given variable |
| */ |
| public int getChildrenCount ( |
| TreeModel original, |
| Variable variable |
| ) throws UnknownTypeException { |
| return original.getChildrenCount (variable); |
| } |
| |
| /** |
| * Returns true if variable is leaf. |
| * |
| * @param original the original tree model |
| * @throws UnknownTypeException if this TreeModel implementation is not |
| * able to resolve dchildren for given node type |
| * @return true if node is leaf |
| */ |
| public boolean isLeaf ( |
| TreeModel original, |
| Variable variable |
| ) throws UnknownTypeException { |
| return original.isLeaf (variable); |
| } |
| |
| |
| // NodeModelFilter |
| |
| /** |
| * Returns filterred display name for given variable. |
| * |
| * @throws ComputingException if the display name resolving process |
| * is time consuming, and the value will be updated later |
| * @throws UnknownTypeException if this NodeModel implementation is not |
| * able to resolve display name for given node type |
| * @return display name for given node |
| */ |
| public String getDisplayName (NodeModel original, Variable variable) |
| throws UnknownTypeException { |
| return original.getDisplayName (variable); |
| } |
| |
| /** |
| * Returns filterred icon for given variable. |
| * |
| * @throws ComputingException if the icon resolving process |
| * is time consuming, and the value will be updated later |
| * @throws UnknownTypeException if this NodeModel implementation is not |
| * able to resolve icon for given node type |
| * @return icon for given node |
| */ |
| public String getIconBase (NodeModel original, Variable variable) |
| throws UnknownTypeException { |
| return original.getIconBase (variable); |
| } |
| |
| /** |
| * Returns filterred tooltip for given variable. |
| * |
| * @throws ComputingException if the tooltip resolving process |
| * is time consuming, and the value will be updated later |
| * @throws UnknownTypeException if this NodeModel implementation is not |
| * able to resolve tooltip for given node type |
| * @return tooltip for given node |
| */ |
| public String getShortDescription (NodeModel original, Variable variable) |
| throws UnknownTypeException { |
| return original.getShortDescription (variable); |
| } |
| |
| |
| // NodeActionsProviderFilter |
| |
| /** |
| * Returns set of actions for given variable. |
| * |
| * @throws UnknownTypeException if this NodeActionsProvider implementation |
| * is not able to resolve actions for given node type |
| * @return set of actions for given variable |
| */ |
| public Action[] getActions ( |
| NodeActionsProvider original, |
| Variable variable |
| ) throws UnknownTypeException { |
| return original.getActions (variable); |
| } |
| |
| /** |
| * Performs default action for given variable. |
| * |
| * @throws UnknownTypeException if this NodeActionsProvider implementation |
| * is not able to resolve actions for given node type |
| */ |
| public void performDefaultAction ( |
| NodeActionsProvider original, |
| Variable variable |
| ) throws UnknownTypeException { |
| original.performDefaultAction (variable); |
| } |
| |
| |
| // TableModelFilter |
| |
| /** |
| * Returns filterred value to be displayed in column <code>columnID</code> |
| * and for variable <code>variable</code>. Column ID is defined in by |
| * {@link org.netbeans.spi.viewmodel.ColumnModel#getID}, and variables are defined by values returned from |
| * {@link TreeModel#getChildren}. |
| * |
| * @param original the original table model |
| * @param variable a variable returned from {@link TreeModel#getChildren} for this row |
| * @param columnID a id of column defined by {@link org.netbeans.spi.viewmodel.ColumnModel#getID} |
| * @throws ComputingException if the value is not known yet and will |
| * be computed later |
| * @throws UnknownTypeException if there is no TableModel defined for given |
| * parameter type |
| * |
| * @return value of variable representing given position in tree table. |
| */ |
| public Object getValueAt ( |
| TableModel original, |
| Variable variable, |
| String columnID |
| ) throws UnknownTypeException { |
| return original.getValueAt (variable, columnID); |
| } |
| |
| /** |
| * Filters original isReadOnly value from given table model. |
| * |
| * @param original the original table model |
| * @param variable a variable returned from {@link TreeModel#getChildren} for this row |
| * @param columnID a id of column defined by {@link org.netbeans.spi.viewmodel.ColumnModel#getID} |
| * @throws UnknownTypeException if there is no TableModel defined for given |
| * parameter type |
| * |
| * @return true if variable on given position is read only |
| */ |
| public boolean isReadOnly ( |
| TableModel original, |
| Variable variable, |
| String columnID |
| ) throws UnknownTypeException { |
| return original.isReadOnly (variable, columnID); |
| } |
| |
| /** |
| * Changes a value displayed in column <code>columnID</code> |
| * for variable <code>variable</code>. Column ID is defined in by |
| * {@link org.netbeans.spi.viewmodel.ColumnModel#getID}, and variable are defined by values returned from |
| * {@link TreeModel#getChildren}. |
| * |
| * @param original the original table model |
| * @param variable a variable returned from {@link TreeModel#getChildren} for this row |
| * @param columnID a id of column defined by {@link org.netbeans.spi.viewmodel.ColumnModel#getID} |
| * @param value a new value of variable on given position |
| * @throws UnknownTypeException if there is no TableModel defined for given |
| * parameter type |
| */ |
| public void setValueAt ( |
| TableModel original, |
| Variable variable, |
| String columnID, |
| Object value |
| ) throws UnknownTypeException { |
| original.setValueAt (variable, columnID, value); |
| } |
| } |