You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2013/07/17 20:21:25 UTC
svn commit: r1504217 - in
/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler:
editor/AbstractCallbackMethodsTab.java
editor/CallbackDescriptorTableModel.java
editor/ObjEntityCallbackMethodsTab.java util/CayenneTable.java
Author: aadamchik
Date: Wed Jul 17 18:21:25 2013
New Revision: 1504217
URL: http://svn.apache.org/r1504217
Log:
CAY-1846 Reworking of callback mapping
patch by Ilya Vasiuk
Modified:
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/AbstractCallbackMethodsTab.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityCallbackMethodsTab.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneTable.java
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/AbstractCallbackMethodsTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/AbstractCallbackMethodsTab.java?rev=1504217&r1=1504216&r2=1504217&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/AbstractCallbackMethodsTab.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/AbstractCallbackMethodsTab.java Wed Jul 17 18:21:25 2013
@@ -19,32 +19,45 @@
package org.apache.cayenne.modeler.editor;
import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.Insets;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.image.ComponentColorModel;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
+import javax.swing.AbstractButton;
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
+import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
+import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JToolBar;
+import javax.swing.ListSelectionModel;
import javax.swing.TransferHandler;
+import javax.swing.event.ChangeEvent;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
-import javax.swing.table.DefaultTableCellRenderer;
-
+import javax.swing.event.TableColumnModelEvent;
+import javax.swing.event.TableColumnModelListener;
+import javax.swing.table.JTableHeader;
import org.apache.cayenne.map.CallbackDescriptor;
import org.apache.cayenne.map.CallbackMap;
import org.apache.cayenne.map.LifecycleEvent;
-import org.apache.cayenne.map.ObjRelationship;
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.ProjectController;
import org.apache.cayenne.modeler.action.AbstractRemoveCallbackMethodAction;
@@ -56,11 +69,13 @@ import org.apache.cayenne.modeler.event.
import org.apache.cayenne.modeler.pref.TableColumnPreferences;
import org.apache.cayenne.modeler.util.CayenneAction;
import org.apache.cayenne.modeler.util.CayenneTable;
-import org.apache.cayenne.modeler.util.PanelFactory;
+import org.apache.cayenne.modeler.util.ModelerUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.jgoodies.forms.builder.DefaultFormBuilder;
+import com.jgoodies.forms.builder.PanelBuilder;
+import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
/**
@@ -81,11 +96,11 @@ public abstract class AbstractCallbackMe
* toolbar for actions
*/
protected JToolBar toolBar;
-
+
/**
- * table for displaying callback method names
+ * panel for displaying callback method tables
*/
- protected CayenneTable table;
+ protected JPanel auxPanel;
/**
* preferences for the callback methods table
@@ -95,10 +110,7 @@ public abstract class AbstractCallbackMe
/**
* Dropdown for callback type selection. Contains fixed list of 7 callback types.
*/
- protected JComboBox callbackTypeCombo = Application
- .getWidgetFactory()
- .createComboBox(
- new Object[] {
+ protected CallbackType[] callbackTypes = {
new CallbackType(LifecycleEvent.POST_ADD, "post-add"),
new CallbackType(LifecycleEvent.PRE_PERSIST, "pre-persist"),
new CallbackType(LifecycleEvent.POST_PERSIST, "post-persist"),
@@ -107,8 +119,7 @@ public abstract class AbstractCallbackMe
new CallbackType(LifecycleEvent.PRE_REMOVE, "pre-remove"),
new CallbackType(LifecycleEvent.POST_REMOVE, "post-remove"),
new CallbackType(LifecycleEvent.POST_LOAD, "post-load"),
- },
- false);
+ };
/**
* constructor
@@ -127,17 +138,6 @@ public abstract class AbstractCallbackMe
protected abstract CallbackMap getCallbackMap();
/**
- * creates filter pane for filtering callback methods list adds callback method type
- * dropdown
- *
- * @param builder forms builder
- */
- protected void buildFilter(DefaultFormBuilder builder) {
- JLabel callbacktypeLabel = new JLabel("Callback type:");
- builder.append(callbacktypeLabel, callbackTypeCombo);
- }
-
- /**
* @return create callback method action
*/
protected CayenneAction getCreateCallbackMethodAction() {
@@ -160,34 +160,103 @@ public abstract class AbstractCallbackMe
this.setLayout(new BorderLayout());
toolBar = new JToolBar();
- toolBar.add(getCreateCallbackMethodAction().buildButton());
toolBar.add(getRemoveCallbackMethodAction().buildButton());
+
add(toolBar, BorderLayout.NORTH);
- JPanel auxPanel = new JPanel();
+ auxPanel = new JPanel();
auxPanel.setOpaque(false);
auxPanel.setLayout(new BorderLayout());
- FormLayout formLayout = new FormLayout("right:70dlu, 3dlu, fill:150dlu");
+ initTablePreferences();
+
+ add(new JScrollPane(auxPanel), BorderLayout.CENTER);
+ }
+
+ /**
+ * Inits the {@link TableColumnPreferences} object according to callback table name.
+ */
+ protected abstract void initTablePreferences();
+
+ /**
+ * listeners initialization
+ */
+ protected void initController() {
+ mediator.addCallbackMethodListener(new CallbackMethodListener() {
+
+ public void callbackMethodChanged(CallbackMethodEvent e) {
+ rebuildTables();
+ }
+
+ public void callbackMethodAdded(CallbackMethodEvent e) {
+ rebuildTables();
+ }
+
+ public void callbackMethodRemoved(CallbackMethodEvent e) {
+ rebuildTables();
+ }
+ });
+ }
+
+ /**
+ * rebuilds table content
+ */
+ protected void rebuildTables() {
+ FormLayout formLayout = new FormLayout("left:" + auxPanel.getWidth() + "px");
DefaultFormBuilder builder = new DefaultFormBuilder(formLayout);
- buildFilter(builder);
- auxPanel.add(builder.getPanel(), BorderLayout.NORTH);
- table = new CayenneTable();
- table.setDefaultRenderer(String.class, new StringRenderer());
+ auxPanel.removeAll();
+
+ CallbackMap callbackMap = getCallbackMap();
+
+ if (callbackMap != null) {
+ for(CallbackType callbackType : callbackTypes) {
+ builder.append(CreateTable(callbackType));
+ }
+ }
+
+ auxPanel.add(builder.getPanel(), BorderLayout.CENTER);
+ validate();
+ }
+
+ private JPanel CreateTable(final CallbackType callbackType)
+ {
+
+ final CayenneTable cayenneTable = new CayenneTable();
// drag-and-drop initialization
- table.setDragEnabled(true);
+ cayenneTable.setDragEnabled(true);
+
+ List<String> methods = new ArrayList<String>();
+ CallbackDescriptor descriptor = null;
+ CallbackMap callbackMap = getCallbackMap();
- table.setTransferHandler(new TransferHandler() {
+ descriptor = callbackMap.getCallbackDescriptor(callbackType.getType());
+ for (String callbackMethod : descriptor.getCallbackMethods()) {
+ methods.add(callbackMethod);
+ }
+
+ final CallbackDescriptorTableModel model = new CallbackDescriptorTableModel(
+ mediator,
+ this,
+ methods,
+ descriptor);
+
+ cayenneTable.setModel(model);
+ cayenneTable.setRowHeight(25);
+ cayenneTable.setRowMargin(3);
+ cayenneTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
+ cayenneTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
+
+ cayenneTable.setTransferHandler(new TransferHandler() {
@Override
protected Transferable createTransferable(JComponent c) {
- int rowIndex = table.getSelectedRow();
+ int rowIndex = cayenneTable.getSelectedRow();
String result = null;
- if (rowIndex >= 0 && rowIndex < table.getModel().getRowCount()) {
- result = String.valueOf(table.getModel().getValueAt(
+ if (rowIndex >= 0 && rowIndex < cayenneTable.getModel().getRowCount()) {
+ result = String.valueOf(cayenneTable.getModel().getValueAt(
rowIndex,
CallbackDescriptorTableModel.METHOD_NAME));
}
@@ -213,17 +282,13 @@ public abstract class AbstractCallbackMe
return false;
}
- int rowIndex = table.getSelectedRow();
+ int rowIndex = cayenneTable.getSelectedRow();
- // move callback method inside of model
- CallbackDescriptor callbackDescriptor = getCallbackMap()
- .getCallbackDescriptor(
- ((CallbackType) callbackTypeCombo.getSelectedItem())
- .getType());
+ CallbackDescriptor callbackDescriptor = ((CallbackDescriptorTableModel)cayenneTable.getCayenneModel()).getCallbackDescriptor();
mediator.setDirty(callbackDescriptor.moveMethod(
callbackMethod,
rowIndex));
- rebuildTable();
+ rebuildTables();
return true;
}
@@ -240,90 +305,34 @@ public abstract class AbstractCallbackMe
return false;
}
});
-
- initTablePreferences();
-
- // Create and install a popup
- JPopupMenu popup = new JPopupMenu();
- popup.add(getRemoveCallbackMethodAction().buildMenu());
-
- TablePopupHandler.install(table, popup);
-
- auxPanel.add(PanelFactory.createTablePanel(table, null), BorderLayout.CENTER);
-
- add(auxPanel, BorderLayout.CENTER);
- }
-
- /**
- * Inits the {@link TableColumnPreferences} object according to callback table name.
- */
- protected abstract void initTablePreferences();
-
- /**
- * listeners initialization
- */
- protected void initController() {
- mediator.addCallbackMethodListener(new CallbackMethodListener() {
-
- public void callbackMethodChanged(CallbackMethodEvent e) {
- if (isVisible()) {
- rebuildTable();
- }
- }
-
- public void callbackMethodAdded(CallbackMethodEvent e) {
- if (isVisible()) {
- updateCallbackTypeCounters();
- rebuildTable();
-
- if (table.editCellAt(
- table.getRowCount() - 1,
- CallbackDescriptorTableModel.METHOD_NAME)
- && table.getEditorComponent() != null) {
- table.getEditorComponent().requestFocus();
- }
- }
- }
-
- public void callbackMethodRemoved(CallbackMethodEvent e) {
- if (isVisible()) {
- updateCallbackTypeCounters();
- rebuildTable();
- }
- }
- });
-
- callbackTypeCombo.addItemListener(new ItemListener() {
-
- public void itemStateChanged(ItemEvent e) {
- if (e.getStateChange() == ItemEvent.SELECTED) {
- mediator.setCurrentCallbackType((CallbackType) callbackTypeCombo
- .getSelectedItem());
- updateCallbackTypeCounters();
- rebuildTable();
- }
- }
- });
-
- table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
+
+ cayenneTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
String[] methods = new String[0];
- if (table.getSelectedRow() != -1) {
- int[] sel = table.getSelectedRows();
+ if (cayenneTable.getSelectedRow() != -1) {
+ int[] sel = cayenneTable.getSelectedRows();
methods = new String[sel.length];
for (int i = 0; i < sel.length; i++) {
- methods[i] = (String) table
+ methods[i] = (String) cayenneTable
.getValueAt(
sel[i],
- table
+ cayenneTable
.convertColumnIndexToView(CallbackDescriptorTableModel.METHOD_NAME));
}
}
+ LifecycleEvent currentType = ((CallbackDescriptorTableModel)cayenneTable.getCayenneModel()).getCallbackDescriptor().getCallbackType();
+ for(CallbackType callbackType : callbackTypes) {
+ if(callbackType.getType() == currentType) {
+ mediator.setCurrentCallbackType(callbackType);
+ break;
+ }
+ }
+
mediator.setCurrentCallbackMethods(methods);
getRemoveCallbackMethodAction().setEnabled(methods.length > 0);
getRemoveCallbackMethodAction().setName(
@@ -332,108 +341,103 @@ public abstract class AbstractCallbackMe
}
}
});
- }
+
+ cayenneTable.getColumnModel().addColumnModelListener(new TableColumnModelListener() {
+
+ public void columnMarginChanged(ChangeEvent e) {
+ if(!cayenneTable.getColumnWidthChanged()) {
+ if(cayenneTable.getTableHeader().getResizingColumn() != null) {
+ tablePreferences.bind(cayenneTable, null, null, null);
+ cayenneTable.setColumnWidthChanged(true);
+ }
+ }
+ }
+
+ public void columnSelectionChanged(ListSelectionEvent e) {
+
+ }
+
+ public void columnRemoved(TableColumnModelEvent e) {
+
+ }
+
+ public void columnMoved(TableColumnModelEvent e) {
+
+ }
+
+ public void columnAdded(TableColumnModelEvent e) {
+
+ }
+ });
+
+ cayenneTable.getTableHeader().addMouseListener(new MouseAdapter()
+ {
+ public void mouseReleased(MouseEvent e)
+ {
+ if(cayenneTable.getColumnWidthChanged())
+ {
+ if(cayenneTable.getWidth() <= 60)
+ cayenneTable.setSize(50, cayenneTable.getHeight());
+ rebuildTables();
+ cayenneTable.setColumnWidthChanged(false);
+ }
+ }
+ });
+
+ tablePreferences.bind(cayenneTable, null, null, null);
- protected void updateCallbackTypeCounters() {
- CallbackMap map = getCallbackMap();
-
- for (int i = 0; i < callbackTypeCombo.getItemCount(); i++) {
- CallbackType type = (CallbackType) callbackTypeCombo.getItemAt(i);
+ // Create and install a popup
+ JPopupMenu popup = new JPopupMenu();
+ popup.add(getRemoveCallbackMethodAction().buildMenu());
- if (map == null) {
- type.setCounter(0);
- }
- else {
- CallbackDescriptor callbackDescriptor = map.getCallbackDescriptor(type
- .getType());
- type.setCounter(callbackDescriptor.getCallbackMethods().size());
- }
- }
- callbackTypeCombo.repaint();
+ TablePopupHandler.install(cayenneTable, popup);
+
+ JPanel panel = new JPanel();
+ panel.setLayout(new BorderLayout());
+
+ addButtonAtHeader(cayenneTable, getCreateCallbackMethodAction().buildButton(), new ButtonListener(callbackType), ModelerUtil.buildIcon("icon-create-method.gif"));
+
+ panel.add(cayenneTable.getTableHeader(), BorderLayout.NORTH);
+ panel.add(cayenneTable, BorderLayout.CENTER);
+
+ return panel;
}
-
- /**
- * rebuilds table content
- */
- protected void rebuildTable() {
- CallbackType callbackType = (CallbackType) callbackTypeCombo.getSelectedItem();
- List methods = new ArrayList();
- CallbackDescriptor descriptor = null;
- CallbackMap callbackMap = getCallbackMap();
-
- if (callbackMap != null && callbackType != null) {
- descriptor = callbackMap.getCallbackDescriptor(callbackType.getType());
- for (String callbackMethod : descriptor.getCallbackMethods()) {
- methods.add(callbackMethod);
- }
- }
-
- final CallbackDescriptorTableModel model = new CallbackDescriptorTableModel(
- mediator,
- this,
- methods,
- descriptor);
-
- table.setModel(model);
- table.setRowHeight(25);
- table.setRowMargin(3);
-
- mediator.setCurrentCallbackMethods(new String[0]);
-
- tablePreferences.bind(table, null, null, null);
+
+ private void addButtonAtHeader(JTable table, JButton button, ActionListener buttonListener, ImageIcon buttonIcon){
+ PanelBuilder builder = new PanelBuilder(new FormLayout("left:10dlu, 2dlu", "center:10dlu"));
+ CellConstraints cc = new CellConstraints();
+
+ button.setIcon(ModelerUtil.buildIcon("icon-create-method.gif"));
+ button.setOpaque(false);
+ button.setBorderPainted(false);
+ button.setContentAreaFilled(false);
+ button.addActionListener(buttonListener);
+
+ builder.add(button, cc.xy(1, 1));
+
+ JPanel buttonPanel = builder.getPanel();
+ buttonPanel.setOpaque(false);
+
+ JTableHeader header = table.getTableHeader();
+ //header.setMinimumSize(new Dimension(50, header.getHeight()));
+ header.setLayout(new BorderLayout());
+ header.add(buttonPanel, BorderLayout.EAST);
}
- /**
- * class for renderig string values
- */
- class StringRenderer extends DefaultTableCellRenderer {
-
- @Override
- public Component getTableCellRendererComponent(
- JTable table,
- Object value,
- boolean isSelected,
- boolean hasFocus,
- int row,
- int column) {
-
- // center cardinality column
- int align = column == ObjRelationshipTableModel.REL_SEMANTICS
- ? JLabel.CENTER
- : JLabel.LEFT;
- super.setHorizontalAlignment(align);
-
- super.getTableCellRendererComponent(
- table,
- value,
- isSelected,
- hasFocus,
- row,
- column);
-
- ObjRelationshipTableModel model = (ObjRelationshipTableModel) table
- .getModel();
- ObjRelationship relationship = model.getRelationship(row);
-
- if (relationship != null
- && relationship.getSourceEntity() != model.getEntity()) {
- setForeground(Color.GRAY);
- }
- else {
- setForeground(isSelected && !hasFocus
- ? table.getSelectionForeground()
- : table.getForeground());
- }
-
- return this;
+ class ButtonListener implements ActionListener
+ {
+ private CallbackType callbackType;
+
+ public ButtonListener(CallbackType callbackType){
+ this.callbackType = callbackType;
+ }
+
+ public void actionPerformed(ActionEvent e) {
+ mediator.setCurrentCallbackType(callbackType);
}
- }
+ }
protected final CallbackType getSelectedCallbackType() {
- CallbackType selectedType = (CallbackType) callbackTypeCombo.getSelectedItem();
- if (selectedType == null) {
- selectedType = (CallbackType) callbackTypeCombo.getItemAt(0);
- }
- return selectedType;
- }
+ return mediator.getCurrentCallbackType();
+ }
}
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java?rev=1504217&r1=1504216&r2=1504217&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java Wed Jul 17 18:21:25 2013
@@ -34,9 +34,8 @@ import org.apache.cayenne.modeler.util.C
*/
public class CallbackDescriptorTableModel extends CayenneTableModel {
- private static final int COLUMN_COUNT = 2;
- public static final int METHOD_NUMBER = 0;
- public static final int METHOD_NAME = 1;
+ private static final int COLUMN_COUNT = 1;
+ public static final int METHOD_NAME = 0;
protected ObjEntity entity;
protected CallbackDescriptor callbackDescriptor;
@@ -100,14 +99,7 @@ public class CallbackDescriptorTableMode
* @return the value Object at the specified cell
*/
public Object getValueAt(int rowIndex, int columnIndex) {
- switch (columnIndex) {
- case METHOD_NUMBER:
- return rowIndex + 1;
- case METHOD_NAME:
- return getCallbackMethod(rowIndex);
- }
-
- return null;
+ return getCallbackMethod(rowIndex);
}
/**
@@ -122,14 +114,7 @@ public class CallbackDescriptorTableMode
* @return column name
*/
public String getColumnName(int column) {
- switch (column) {
- case METHOD_NUMBER:
- return "No.";
- case METHOD_NAME:
- return "Method";
- }
-
- return null;
+ return callbackDescriptor.getCallbackType().name();
}
/**
@@ -140,12 +125,6 @@ public class CallbackDescriptorTableMode
* @return true
*/
public boolean isCellEditable(int rowIndex, int columnIndex) {
- switch (columnIndex) {
- case METHOD_NAME:
- return true;
- case METHOD_NUMBER:
- return false;
- }
return true;
}
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityCallbackMethodsTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityCallbackMethodsTab.java?rev=1504217&r1=1504216&r2=1504217&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityCallbackMethodsTab.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityCallbackMethodsTab.java Wed Jul 17 18:21:25 2013
@@ -48,13 +48,11 @@ public class ObjEntityCallbackMethodsTab
*/
protected void initController() {
super.initController();
- //mediator.addObjEntityDisplayListener(this);
+
addComponentListener(
new ComponentAdapter() {
public void componentShown(ComponentEvent e) {
- mediator.setCurrentCallbackType((CallbackType)callbackTypeCombo.getSelectedItem());
- updateCallbackTypeCounters();
- rebuildTable();
+ rebuildTables();
}
}
);
@@ -63,9 +61,7 @@ public class ObjEntityCallbackMethodsTab
new ObjEntityDisplayListener() {
public void currentObjEntityChanged(EntityDisplayEvent e) {
if (ObjEntityCallbackMethodsTab.this.isVisible()) {
- mediator.setCurrentCallbackType((CallbackType)callbackTypeCombo.getSelectedItem());
- updateCallbackTypeCounters();
- rebuildTable();
+ rebuildTables();
}
}
}
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneTable.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneTable.java?rev=1504217&r1=1504216&r2=1504217&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneTable.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneTable.java Wed Jul 17 18:21:25 2013
@@ -46,6 +46,7 @@ public class CayenneTable extends JTable
private SortButtonRenderer renderer = new SortButtonRenderer();
protected TableHeaderSortingListener tableHeaderListener;
+ private boolean isColumnWidthChanged;
public CayenneTable() {
super();
@@ -244,4 +245,12 @@ public class CayenneTable extends JTable
public void setSortPreferenceSaver(TableColumnPreferences tableColumnPreferences) {
tableHeaderListener.setPreferences(tableColumnPreferences);
}
+
+ public boolean getColumnWidthChanged() {
+ return isColumnWidthChanged;
+ }
+
+ public void setColumnWidthChanged(boolean widthChanged) {
+ isColumnWidthChanged = widthChanged;
+ }
}