You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2020/02/08 04:55:43 UTC
[groovy] 01/02: remove deprecated classes
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 <pa...@asert.com.au>
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>