This is an automated email from the ASF dual-hosted git repository.

paulk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit b5dc8f2a0e40be063929815c93cbdc7003815e99
Author: Paul King <[email protected]>
AuthorDate: Sat Feb 8 13:58:23 2020 +1000

    remove deprecated classes
---
 .../main/java/groovy/inspect/swingui/TableMap.java |  87 ------
 .../java/groovy/inspect/swingui/TableSorter.java   | 327 ---------------------
 .../src/main/java/groovy/model/ClosureModel.java   |  79 -----
 .../main/java/groovy/model/DefaultTableColumn.java |  84 ------
 .../main/java/groovy/model/DefaultTableModel.java  | 215 --------------
 .../src/main/java/groovy/model/FormModel.java      |  47 ---
 .../main/java/groovy/model/NestedValueModel.java   |  28 --
 .../src/main/java/groovy/model/PropertyModel.java  |  81 -----
 .../src/main/java/groovy/model/ValueHolder.java    |  94 ------
 .../src/main/java/groovy/model/ValueModel.java     |  30 --
 .../src/main/java/groovy/model/package.html        |  29 --
 11 files changed, 1101 deletions(-)

diff --git 
a/subprojects/groovy-swing/src/main/java/groovy/inspect/swingui/TableMap.java 
b/subprojects/groovy-swing/src/main/java/groovy/inspect/swingui/TableMap.java
deleted file mode 100644
index 6908be5..0000000
--- 
a/subprojects/groovy-swing/src/main/java/groovy/inspect/swingui/TableMap.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- *  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 groovy.inspect.swingui;
-
-import javax.swing.event.TableModelEvent;
-import javax.swing.event.TableModelListener;
-import javax.swing.table.AbstractTableModel;
-import javax.swing.table.TableModel;
-
-/**
- * In a chain of data manipulators some behaviour is common. TableMap
- * provides most of this behaviour and can be subclassed by filters
- * that only need to override a handful of specific methods. TableMap
- * implements TableModel by routing all requests to its model, and
- * TableModelListener by routing all events to its listeners. Inserting
- * a TableMap which has not been subclassed into a chain of table filters
- * should have no effect.
- */
-@Deprecated
-public class TableMap extends AbstractTableModel implements TableModelListener 
{
-    protected TableModel model;
-
-    public TableModel getModel() {
-        return model;
-    }
-
-    public void setModel(TableModel model) {
-        this.model = model;
-        model.addTableModelListener(this);
-    }
-
-    // By default, Implement TableModel by forwarding all messages
-    // to the model.
-
-    public Object getValueAt(int aRow, int aColumn) {
-        return model.getValueAt(aRow, aColumn);
-    }
-
-    public void setValueAt(Object aValue, int aRow, int aColumn) {
-        model.setValueAt(aValue, aRow, aColumn);
-    }
-
-    public int getRowCount() {
-        return (model == null) ? 0 : model.getRowCount();
-    }
-
-    public int getColumnCount() {
-        return (model == null) ? 0 : model.getColumnCount();
-    }
-
-    public String getColumnName(int aColumn) {
-        return model.getColumnName(aColumn);
-    }
-
-    public Class getColumnClass(int aColumn) {
-        return model.getColumnClass(aColumn);
-    }
-
-    public boolean isCellEditable(int row, int column) {
-        return model.isCellEditable(row, column);
-    }
-//
-// Implementation of the TableModelListener interface,
-//
-
-    // By default forward all events to all the listeners.
-    public void tableChanged(TableModelEvent e) {
-        fireTableChanged(e);
-    }
-}
-
diff --git 
a/subprojects/groovy-swing/src/main/java/groovy/inspect/swingui/TableSorter.java
 
b/subprojects/groovy-swing/src/main/java/groovy/inspect/swingui/TableSorter.java
deleted file mode 100644
index 87bbbda..0000000
--- 
a/subprojects/groovy-swing/src/main/java/groovy/inspect/swingui/TableSorter.java
+++ /dev/null
@@ -1,327 +0,0 @@
-/*
- *  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 groovy.inspect.swingui;
-
-import javax.swing.*;
-import javax.swing.event.TableModelEvent;
-import javax.swing.table.JTableHeader;
-import javax.swing.table.TableColumnModel;
-import javax.swing.table.TableModel;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.util.Date;
-import java.util.Vector;
-
-/**
- * A sorter for TableModels. The sorter has a model (conforming to TableModel)
- * and itself implements TableModel. TableSorter does not store or copy
- * the data in the TableModel, instead it maintains an array of
- * integers which it keeps the same size as the number of rows in its
- * model. When the model changes it notifies the sorter that something
- * has changed eg. "rowsAdded" so that its internal array of integers
- * can be reallocated. As requests are made of the sorter (like
- * getValueAt(row, col) it redirects them to its model via the mapping
- * array. That way the TableSorter appears to hold another copy of the table
- * with the rows in a different order. The sorting algorithm used is stable
- * which means that it does not move around rows when its comparison
- * function returns 0 to denote that they are equivalent.
- */
-@Deprecated
-public class TableSorter extends TableMap {
-    private static final int[] EMPTY_INT_ARRAY = new int[0];
-    int indexes[];
-    Vector sortingColumns = new Vector();
-    boolean ascending = true;
-    int lastSortedColumn = -1;
-
-    public TableSorter() {
-        indexes = EMPTY_INT_ARRAY; // For consistency.
-    }
-
-    public TableSorter(TableModel model) {
-        setModel(model);
-    }
-
-    public void setModel(TableModel model) {
-        super.setModel(model);
-        reallocateIndexes();
-    }
-
-    public int compareRowsByColumn(int row1, int row2, int column) {
-        Class type = model.getColumnClass(column);
-        TableModel data = model;
-
-        // Check for nulls
-
-        Object o1 = data.getValueAt(row1, column);
-        Object o2 = data.getValueAt(row2, column);
-
-        // If both values are null return 0
-        if (o1 == null && o2 == null) {
-            return 0;
-        } else if (o1 == null) { // Define null less than everything.
-            return -1;
-        } else if (o2 == null) {
-            return 1;
-        }
-
-/* We copy all returned values from the getValue call in case
-an optimised model is reusing one object to return many values.
-The Number subclasses in the JDK are immutable and so will not be used in
-this way but other subclasses of Number might want to do this to save
-space and avoid unnecessary heap allocation.
-*/
-        if (type.getSuperclass() == java.lang.Number.class) {
-            return compareNumbers(data, row1, column, row2);
-        }
-
-        if (type == java.util.Date.class) {
-            return compareDates(data, row1, column, row2);
-        }
-
-        if (type == String.class) {
-            return compareStrings(data, row1, column, row2);
-        }
-
-        if (type == Boolean.class) {
-            return compareBooleans(data, row1, column, row2);
-        }
-        return compareObjects(data, row1, column, row2);
-    }
-
-    private static int compareObjects(TableModel data, int row1, int column, 
int row2) {
-        Object v1 = data.getValueAt(row1, column);
-        String s1 = v1.toString();
-        Object v2 = data.getValueAt(row2, column);
-        String s2 = v2.toString();
-        int result = s1.compareTo(s2);
-
-        if (result < 0)
-            return -1;
-        if (result > 0)
-            return 1;
-        return 0;
-    }
-
-    private static int compareBooleans(TableModel data, int row1, int column, 
int row2) {
-        Boolean bool1 = (Boolean) data.getValueAt(row1, column);
-        boolean b1 = bool1;
-        Boolean bool2 = (Boolean) data.getValueAt(row2, column);
-        boolean b2 = bool2;
-
-        if (b1 == b2)
-            return 0;
-        if (b1) // Define false < true
-            return 1;
-        return -1;
-    }
-
-    private static int compareStrings(TableModel data, int row1, int column, 
int row2) {
-        String s1 = (String) data.getValueAt(row1, column);
-        String s2 = (String) data.getValueAt(row2, column);
-        int result = s1.compareTo(s2);
-
-        if (result < 0)
-            return -1;
-        if (result > 0)
-            return 1;
-        return 0;
-    }
-
-    private static int compareDates(TableModel data, int row1, int column, int 
row2) {
-        Date d1 = (Date) data.getValueAt(row1, column);
-        long n1 = d1.getTime();
-        Date d2 = (Date) data.getValueAt(row2, column);
-        long n2 = d2.getTime();
-
-        if (n1 < n2)
-            return -1;
-        if (n1 > n2)
-            return 1;
-        return 0;
-    }
-
-    private static int compareNumbers(TableModel data, int row1, int column, 
int row2) {
-        Number n1 = (Number) data.getValueAt(row1, column);
-        double d1 = n1.doubleValue();
-        Number n2 = (Number) data.getValueAt(row2, column);
-        double d2 = n2.doubleValue();
-
-        if (d1 < d2)
-            return -1;
-        if (d1 > d2)
-            return 1;
-        return 0;
-    }
-
-    public int compare(int row1, int row2) {
-        for (int level = 0; level < sortingColumns.size(); level++) {
-            Integer column = (Integer) sortingColumns.elementAt(level);
-            int result = compareRowsByColumn(row1, row2, column);
-            if (result != 0)
-                return ascending ? result : -result;
-        }
-        return 0;
-    }
-
-    public void reallocateIndexes() {
-        int rowCount = model.getRowCount();
-
-        // Set up a new array of indexes with the right number of elements
-        // for the new data model.
-        indexes = new int[rowCount];
-
-        // Initialise with the identity mapping.
-        for (int row = 0; row < rowCount; row++)
-            indexes[row] = row;
-    }
-
-    public void tableChanged(TableModelEvent e) {
-        reallocateIndexes();
-
-        super.tableChanged(e);
-    }
-
-    public void checkModel() {
-        if (indexes.length != model.getRowCount()) {
-            System.err.println("Sorter not informed of a change in model.");
-        }
-    }
-
-    public void sort(Object sender) {
-        checkModel();
-        shuttlesort((int[]) indexes.clone(), indexes, 0, indexes.length);
-    }
-
-    public void n2sort() {
-        for (int i = 0; i < getRowCount(); i++) {
-            for (int j = i + 1; j < getRowCount(); j++) {
-                if (compare(indexes[i], indexes[j]) == -1) {
-                    swap(i, j);
-                }
-            }
-        }
-    }
-
-    // This is a home-grown implementation which we have not had time
-    // to research - it may perform poorly in some circumstances. It
-    // requires twice the space of an in-place algorithm and makes
-    // NlogN assignments shuttling the values between the two
-    // arrays. The number of compares appears to vary between N-1 and
-    // NlogN depending on the initial order but the main reason for
-    // using it here is that, unlike qsort, it is stable.
-    public void shuttlesort(int from[], int to[], int low, int high) {
-        if (high - low < 2) {
-            return;
-        }
-        int middle = (low + high) / 2;
-        shuttlesort(to, from, low, middle);
-        shuttlesort(to, from, middle, high);
-
-        int p = low;
-        int q = middle;
-
-        /* This is an optional short-cut; at each recursive call,
-        check to see if the elements in this subset are already
-        ordered.  If so, no further comparisons are needed; the
-        sub-array can just be copied.  The array must be copied rather
-        than assigned otherwise sister calls in the recursion might
-        get out of sync.  When the number of elements is three they
-        are partitioned so that the first set, [low, mid), has one
-        element and and the second, [mid, high), has two. We skip the
-        optimisation when the number of elements is three or less as
-        the first compare in the normal merge will produce the same
-        sequence of steps. This optimisation seems to be worthwhile
-        for partially ordered lists but some analysis is needed to
-        find out how the performance drops to Nlog(N) as the initial
-        order diminishes - it may drop very quickly.  */
-
-        if (high - low >= 4 && compare(from[middle - 1], from[middle]) <= 0) {
-            System.arraycopy(from, low, to, low, high - low);
-            return;
-        }
-
-        // A normal merge.
-
-        for (int i = low; i < high; i++) {
-            if (q >= high || (p < middle && compare(from[p], from[q]) <= 0)) {
-                to[i] = from[p++];
-            } else {
-                to[i] = from[q++];
-            }
-        }
-    }
-
-    public void swap(int i, int j) {
-        int tmp = indexes[i];
-        indexes[i] = indexes[j];
-        indexes[j] = tmp;
-    }
-
-    // The mapping only affects the contents of the data rows.
-    // Pass all requests to these rows through the mapping array: "indexes".
-
-    public Object getValueAt(int aRow, int aColumn) {
-        checkModel();
-        return model.getValueAt(indexes[aRow], aColumn);
-    }
-
-    public void setValueAt(Object aValue, int aRow, int aColumn) {
-        checkModel();
-        model.setValueAt(aValue, indexes[aRow], aColumn);
-    }
-
-    public void sortByColumn(int column) {
-        sortByColumn(column, true);
-    }
-
-    public void sortByColumn(int column, boolean ascending) {
-        this.ascending = ascending;
-        sortingColumns.removeAllElements();
-        sortingColumns.addElement(column);
-        sort(this);
-        super.tableChanged(new TableModelEvent(this));
-    }
-
-    // There is no-where else to put this.
-    // Add a mouse listener to the Table to trigger a table sort
-    // when a column heading is clicked in the JTable.
-    public void addMouseListenerToHeaderInTable(JTable table) {
-        final TableSorter sorter = this;
-        final JTable tableView = table;
-        tableView.setColumnSelectionAllowed(false);
-        MouseAdapter listMouseListener = new MouseAdapter() {
-            public void mouseClicked(MouseEvent e) {
-                TableColumnModel columnModel = tableView.getColumnModel();
-                int viewColumn = columnModel.getColumnIndexAtX(e.getX());
-                int column = tableView.convertColumnIndexToModel(viewColumn);
-                if (e.getClickCount() == 1 && column != -1) {
-                    if (lastSortedColumn == column) ascending = !ascending;
-                    sorter.sortByColumn(column, ascending);
-                    lastSortedColumn = column;
-                }
-            }
-        };
-        JTableHeader th = tableView.getTableHeader();
-        th.addMouseListener(listMouseListener);
-    }
-
-
-}
-
diff --git 
a/subprojects/groovy-swing/src/main/java/groovy/model/ClosureModel.java 
b/subprojects/groovy-swing/src/main/java/groovy/model/ClosureModel.java
deleted file mode 100644
index 80c8055..0000000
--- a/subprojects/groovy-swing/src/main/java/groovy/model/ClosureModel.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- *  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 groovy.model;
-
-import groovy.lang.Closure;
-
-/**
- * Represents a value model using a closure to extract
- * the value from some source model and an optional write closure
- * for updating the value.
- */
-@Deprecated
-public class ClosureModel implements ValueModel, NestedValueModel {
-
-    private final ValueModel sourceModel;
-    private final Closure readClosure;
-    private final Closure writeClosure;
-    private final Class type;
-
-    public ClosureModel(ValueModel sourceModel, Closure readClosure) {
-        this(sourceModel, readClosure, null);
-    }
-
-    public ClosureModel(ValueModel sourceModel, Closure readClosure, Closure 
writeClosure) {
-        this(sourceModel, readClosure, writeClosure, Object.class);
-    }
-
-    public ClosureModel(ValueModel sourceModel, Closure readClosure, Closure 
writeClosure, Class type) {
-        this.sourceModel = sourceModel;
-        this.readClosure = readClosure;
-        this.writeClosure = writeClosure;
-        this.type = type;
-    }
-
-    public ValueModel getSourceModel() {
-        return sourceModel;
-    }
-
-    public Object getValue() {
-        Object source = sourceModel.getValue();
-        if (source != null) {
-            return readClosure.call(source);
-        }
-        return null;
-    }
-
-    public void setValue(Object value) {
-        if (writeClosure != null) {
-            Object source = sourceModel.getValue();
-            if (source != null) {
-                writeClosure.call(source, value);
-            }
-        }
-    }
-
-    public Class getType() {
-        return type;
-    }
-
-    public boolean isEditable() {
-        return writeClosure != null;
-    }
-}
diff --git 
a/subprojects/groovy-swing/src/main/java/groovy/model/DefaultTableColumn.java 
b/subprojects/groovy-swing/src/main/java/groovy/model/DefaultTableColumn.java
deleted file mode 100644
index a88a1ad..0000000
--- 
a/subprojects/groovy-swing/src/main/java/groovy/model/DefaultTableColumn.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- *  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 groovy.model;
-
-import javax.swing.table.TableColumn;
-
-/** 
- * Represents a column using a ValueModel to extract the value.
- */
-@Deprecated
-public class DefaultTableColumn extends TableColumn {
-
-    private ValueModel valueModel;    
-    
-    public DefaultTableColumn(ValueModel valueModel) {
-        this.valueModel = valueModel;
-    }
-
-    public DefaultTableColumn(Object header, ValueModel valueModel) {
-        this(valueModel);
-        setHeaderValue(header);
-    }
-
-    public DefaultTableColumn(Object headerValue, Object identifier, 
ValueModel columnValueModel) {
-        this(headerValue, columnValueModel);
-        setIdentifier(identifier);
-    }
-
-    public String toString() {
-        return super.toString() + "[header:" + getHeaderValue() + " 
valueModel:" + valueModel + "]";
-    }
-    
-    /**
-     * Evaluates the value of a cell
-     *
-     * @return the value
-     * @param row the row of interest
-     * @param rowIndex the index of the row of interest
-     * @param columnIndex the column of interest
-     */    
-    public Object getValue(Object row, int rowIndex, int columnIndex) {
-        if (valueModel instanceof NestedValueModel) {
-            NestedValueModel nestedModel = (NestedValueModel) valueModel;
-            nestedModel.getSourceModel().setValue(row);
-        }
-        return valueModel.getValue();
-    }
-
-    public void setValue(Object row, Object value, int rowIndex, int 
columnIndex) {
-        if (valueModel instanceof NestedValueModel) {
-            NestedValueModel nestedModel = (NestedValueModel) valueModel;
-            nestedModel.getSourceModel().setValue(row);
-        }
-        valueModel.setValue(value);
-    }
-
-    /**
-     * @return the column type
-     */
-    public Class getType() {
-        return valueModel.getType();
-    }
-
-    public ValueModel getValueModel() {
-        return valueModel;
-    }
-
-}
\ No newline at end of file
diff --git 
a/subprojects/groovy-swing/src/main/java/groovy/model/DefaultTableModel.java 
b/subprojects/groovy-swing/src/main/java/groovy/model/DefaultTableModel.java
deleted file mode 100644
index 280bbd0..0000000
--- a/subprojects/groovy-swing/src/main/java/groovy/model/DefaultTableModel.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- *  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 groovy.model;
-
-import groovy.lang.Closure;
-import org.codehaus.groovy.runtime.InvokerHelper;
-
-import javax.swing.table.AbstractTableModel;
-import javax.swing.table.DefaultTableColumnModel;
-import javax.swing.table.TableColumn;
-import javax.swing.table.TableColumnModel;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * A default table model made up of PropertyModels on a Value model.
- */
-@Deprecated
-public class DefaultTableModel extends AbstractTableModel {
-
-    private ValueModel rowModel;
-    private ValueModel rowsModel;
-    private MyTableColumnModel columnModel = new MyTableColumnModel();
-
-    public DefaultTableModel(ValueModel rowsModel) {
-        this(rowsModel, new ValueHolder());
-    }
-    
-    public DefaultTableModel(ValueModel rowsModel, ValueModel rowModel) {
-        this.rowModel = rowModel;
-        this.rowsModel = rowsModel;
-    }
-    
-    /**
-     * @return the column definitions.
-     */
-    public List getColumnList() {
-        return columnModel.getColumnList();
-    }
-
-    public TableColumnModel getColumnModel() {
-        return columnModel;
-    }
-    
-    /**
-     * Adds a property model column to the table
-     */
-    public DefaultTableColumn addPropertyColumn(Object headerValue, String 
property, Class type) {
-        return addColumn(headerValue, property, new PropertyModel(rowModel, 
property, type));
-    }
-    
-    /**
-     * Adds a property model column to the table
-     */
-    public DefaultTableColumn addPropertyColumn(Object headerValue, String 
property, Class type, boolean editable) {
-        return addColumn(headerValue, property, new PropertyModel(rowModel, 
property, type, editable));
-    }
-    
-    /**
-     * Adds a closure based column to the table
-     */
-    public DefaultTableColumn addClosureColumn(Object headerValue, Closure 
readClosure, Closure writeClosure, Class type) {
-        return addColumn(headerValue, new ClosureModel(rowModel, readClosure, 
writeClosure, type));
-    }
-    
-    public DefaultTableColumn addColumn(Object headerValue, ValueModel 
columnValueModel) {
-        return addColumn(headerValue, headerValue, columnValueModel);
-    }
-
-    public DefaultTableColumn addColumn(Object headerValue, Object identifier, 
ValueModel columnValueModel) {
-        DefaultTableColumn answer = new DefaultTableColumn(headerValue, 
identifier, columnValueModel);
-        addColumn(answer);
-        return answer;
-    }
-    
-    /**
-     * Adds a new column definition to the table
-     */
-    public void addColumn(DefaultTableColumn column) {
-        column.setModelIndex(columnModel.getColumnCount());
-        columnModel.addColumn(column);
-    }
-    
-    /**
-     * Removes a column definition from the table
-     */
-    public void removeColumn(DefaultTableColumn column) {
-        columnModel.removeColumn(column);
-    }
-    
-    public int getRowCount() {
-        return getRows().size();
-    }
-
-    public int getColumnCount() {
-        return columnModel.getColumnCount();
-    }
-    
-    public String getColumnName(int columnIndex) {
-        String answer = null;
-        if (columnIndex < 0 || columnIndex >= columnModel.getColumnCount()) {
-            return answer;
-        }
-        Object value = columnModel.getColumn(columnIndex).getHeaderValue();
-        if (value != null) {
-            return value.toString();
-        }
-        return answer;
-    }
-
-    public Class getColumnClass(int columnIndex) {
-        return getColumnModel(columnIndex).getType();
-    }
-
-    public boolean isCellEditable(int rowIndex, int columnIndex) {
-        return getColumnModel(columnIndex).isEditable();
-    }
-
-    public Object getValueAt(int rowIndex, int columnIndex) {
-        List rows = getRows();
-        Object answer = null;
-        if (rowIndex < 0 || rowIndex >= rows.size()) {
-            return answer;
-        }
-        if (columnIndex < 0 || columnIndex >= columnModel.getColumnCount()) {
-            return answer;
-        }
-        Object row = getRows().get(rowIndex);
-        rowModel.setValue(row);
-        DefaultTableColumn column = (DefaultTableColumn) 
columnModel.getColumn(columnIndex);
-        if (row == null || column == null) {
-            return answer;
-        }
-        return column.getValue(row, rowIndex, columnIndex);
-    }
-
-    public void setValueAt(Object value, int rowIndex, int columnIndex) {
-        List rows = getRows();
-        if (rowIndex < 0 || rowIndex >= rows.size()) {
-            return;
-        }
-        if (columnIndex < 0 || columnIndex >= columnModel.getColumnCount()) {
-            return;
-        }
-        Object row = getRows().get(rowIndex);
-        rowModel.setValue(row);
-        DefaultTableColumn column = (DefaultTableColumn) 
columnModel.getColumn(columnIndex);
-        if (row == null || column == null) {
-            return;
-        }
-        column.setValue(row, value, rowIndex, columnIndex);
-    }
-
-    protected ValueModel getColumnModel(int columnIndex) {
-        DefaultTableColumn column = (DefaultTableColumn) 
columnModel.getColumn(columnIndex);
-        return column.getValueModel();
-    }
-
-    protected List getRows() {
-        Object value = rowsModel.getValue();
-        if (value == null) {
-            return Collections.EMPTY_LIST;
-        }
-        return InvokerHelper.asList(value);
-    }
-
-    protected static class MyTableColumnModel extends DefaultTableColumnModel {
-        public List getColumnList() {
-            return tableColumns;
-        }
-
-        public void removeColumn(TableColumn column) {
-            super.removeColumn(column);
-            renumberTableColumns();
-        }
-
-        public void moveColumn(int columnIndex, int newIndex) {
-            super.moveColumn(columnIndex, newIndex);
-            renumberTableColumns();
-        }
-
-        public void renumberTableColumns() {
-            for (int i = tableColumns.size() - 1; i >= 0; i--) {
-                ((DefaultTableColumn)tableColumns.get(i)).setModelIndex(i);
-            }
-        }
-
-    }
-    
-    public ValueModel getRowModel() {
-        return rowModel;
-    }
-
-    public ValueModel getRowsModel() {
-        return rowsModel;
-    }
-
-
-}
\ No newline at end of file
diff --git a/subprojects/groovy-swing/src/main/java/groovy/model/FormModel.java 
b/subprojects/groovy-swing/src/main/java/groovy/model/FormModel.java
deleted file mode 100644
index 8468caa..0000000
--- a/subprojects/groovy-swing/src/main/java/groovy/model/FormModel.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *  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 groovy.model;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Represents a number of field models which can be ValueModel, 
- * PropertyModel, TableModel, TreeModel or nested FormModel instances
- */
-@Deprecated
-public class FormModel {
-    private Map fieldModels;
-
-    public FormModel() {
-        this(new HashMap());
-    }
-    
-    public FormModel(Map fieldModels) {
-        this.fieldModels = fieldModels;
-    }
-
-    public void addModel(String name, Object model) {
-        fieldModels.put(name, model);
-    }
-    
-    public Object getModel(String name) {
-        return fieldModels.get(name);
-    }
-}
diff --git 
a/subprojects/groovy-swing/src/main/java/groovy/model/NestedValueModel.java 
b/subprojects/groovy-swing/src/main/java/groovy/model/NestedValueModel.java
deleted file mode 100644
index 15e86faa..0000000
--- a/subprojects/groovy-swing/src/main/java/groovy/model/NestedValueModel.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- *  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 groovy.model;
-
-/**
- * Represents a nested value model such as a PropertyModel
- * or a ClosureModel
- */
-@Deprecated
-public interface NestedValueModel {
-    ValueModel getSourceModel();
-}
diff --git 
a/subprojects/groovy-swing/src/main/java/groovy/model/PropertyModel.java 
b/subprojects/groovy-swing/src/main/java/groovy/model/PropertyModel.java
deleted file mode 100644
index e4cb9d8..0000000
--- a/subprojects/groovy-swing/src/main/java/groovy/model/PropertyModel.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- *  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 groovy.model;
-
-import org.codehaus.groovy.runtime.InvokerHelper;
-
-/**
- * Represents a property of a value as a model.
- */
-@Deprecated
-public class PropertyModel implements ValueModel, NestedValueModel {
-
-    private ValueModel sourceModel;
-    private String property;
-    private Class type;
-    boolean editable;
-
-    public PropertyModel(ValueModel sourceModel, String property) {
-        this(sourceModel, property, Object.class, true);
-    }
-
-    public PropertyModel(ValueModel sourceModel, String property, Class type) {
-        this(sourceModel, property, type, true);
-    }
-
-    public PropertyModel(ValueModel sourceModel, String property, Class type, 
boolean editable) {
-        this.sourceModel = sourceModel;
-        this.property = property;
-        this.type = type;
-        //TODO After 1.1 we should introspect the meta property and set 
editable to false if the property is read only
-        this.editable = editable;
-    }
-
-    public String getProperty() {
-        return property;
-    }
-
-    public ValueModel getSourceModel() {
-        return sourceModel;
-    }
-
-    public Object getValue() {
-        Object source = sourceModel.getValue();
-        if (source != null) {
-            return InvokerHelper.getProperty(source, property);
-        }
-        return null;
-    }
-
-    public void setValue(Object value) {
-        Object source = sourceModel.getValue();
-        if (source != null) {
-            InvokerHelper.setProperty(source, property, value);
-        }
-    }
-    
-    public Class getType() {
-        return type;
-    }
-
-    public boolean isEditable() {
-        return editable;
-    }
-
-}
diff --git 
a/subprojects/groovy-swing/src/main/java/groovy/model/ValueHolder.java 
b/subprojects/groovy-swing/src/main/java/groovy/model/ValueHolder.java
deleted file mode 100644
index 4e9bd33..0000000
--- a/subprojects/groovy-swing/src/main/java/groovy/model/ValueHolder.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- *  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 groovy.model;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-
-/**
- * A simple ValueModel implementation which is a holder of an object value. 
- * Used to share local variables with closures
- */
-@Deprecated
-public class ValueHolder implements ValueModel {
-    private Object value;
-    private final Class type;
-    private PropertyChangeSupport propertyChangeSupport;
-    private boolean editable = true;
-
-    public ValueHolder() {
-        this(Object.class);
-    }
-    
-    public ValueHolder(Class type) {
-        this.type = type;
-    }
-    
-    public ValueHolder(Object value) {
-        this.value = value;
-        this.type = (value != null) ? value.getClass() : Object.class;
-    }
-    
-    /** 
-     * Add a PropertyChangeListener to the listener list.
-     * @param listener The listener to add.
-     */
-    public void addPropertyChangeListener(PropertyChangeListener listener) {
-        if ( propertyChangeSupport == null ) {
-            propertyChangeSupport = new PropertyChangeSupport(this);
-        }
-        propertyChangeSupport.addPropertyChangeListener(listener);
-    }
-    
-    /** 
-     * Removes a PropertyChangeListener from the listener list.
-     * @param listener The listener to remove.
-     */
-    public void removePropertyChangeListener(PropertyChangeListener listener) {
-        if ( propertyChangeSupport != null ) {
-            propertyChangeSupport.removePropertyChangeListener(listener);
-        }
-    }
-    
-
-    public Object getValue() {
-        return value;
-    }
-
-    public void setValue(Object value) {
-        Object oldValue = this.value;
-        this.value = value;
-        if ( propertyChangeSupport != null ) {
-            propertyChangeSupport.firePropertyChange("value", oldValue, value);
-        }
-    }
-
-    public Class getType() {
-        return type;
-    }
-
-    public boolean isEditable() {
-        return editable;
-    }
-    
-    public void setEditable(boolean editable) {
-        this.editable = editable;
-    }
-
-}
diff --git 
a/subprojects/groovy-swing/src/main/java/groovy/model/ValueModel.java 
b/subprojects/groovy-swing/src/main/java/groovy/model/ValueModel.java
deleted file mode 100644
index b9726a5..0000000
--- a/subprojects/groovy-swing/src/main/java/groovy/model/ValueModel.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- *  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 groovy.model;
-
-/**
- * Represents a model of a value
- */
-@Deprecated
-public interface ValueModel {
-    Object getValue();
-    void setValue(Object value);
-    Class getType();
-    boolean isEditable();
-}
diff --git a/subprojects/groovy-swing/src/main/java/groovy/model/package.html 
b/subprojects/groovy-swing/src/main/java/groovy/model/package.html
deleted file mode 100644
index eae064c..0000000
--- a/subprojects/groovy-swing/src/main/java/groovy/model/package.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
-
-     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.
-
--->
-<html>
-  <head>
-    <title>package groovy.model.*</title>
-  </head>
-  <body>
-    <p>An MVC model package for working with user interfaces and data 
structures and arbitrary Java and Groovy objects
-    </p>
-  </body>
-</html>

Reply via email to