You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2018/10/01 15:03:56 UTC
[1/6] cayenne git commit: CAY-2475 Modeler: move inheritance icon to
name column in objAttr table and objRel table
Repository: cayenne
Updated Branches:
refs/heads/STABLE-4.0 15471c0a6 -> 20f9d3899
CAY-2475 Modeler: move inheritance icon to name column in objAttr table and objRel table
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/3285651e
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/3285651e
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/3285651e
Branch: refs/heads/STABLE-4.0
Commit: 3285651e0c09f3ca60be8c771fc922c970150055
Parents: d3fa7b7
Author: Arseni Bulatski <an...@gmail.com>
Authored: Mon Sep 17 15:34:31 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Tue Sep 25 12:11:51 2018 +0300
----------------------------------------------------------------------
RELEASE-NOTES.txt | 5 +
.../modeler/editor/ObjAttributeTableModel.java | 32 ++---
.../modeler/editor/ObjEntityAttributePanel.java | 117 +++++++------------
.../editor/ObjEntityRelationshipPanel.java | 44 ++++++-
4 files changed, 103 insertions(+), 95 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/3285651e/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 3766f3b..e2e491c 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -12,6 +12,11 @@ Release: 4.0.1
Date:
----------------------------------
+=======
+Changes/New Features:
+
+CAY-2475 Modeler: move inheritance icon to name column in objAttr table and objRel table
+
Bug Fixes:
CAY-2320 Modeler: Limit input into numeric fields to 10 digits
http://git-wip-us.apache.org/repos/asf/cayenne/blob/3285651e/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjAttributeTableModel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjAttributeTableModel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjAttributeTableModel.java
index 41739ac..8918ea0 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjAttributeTableModel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjAttributeTableModel.java
@@ -58,13 +58,12 @@ import java.util.List;
public class ObjAttributeTableModel extends CayenneTableModel<ObjAttributeWrapper> {
// Columns
- public static final int INHERITED = 0;
- public static final int OBJ_ATTRIBUTE = 1;
- public static final int OBJ_ATTRIBUTE_TYPE = 2;
- public static final int DB_ATTRIBUTE = 3;
- public static final int DB_ATTRIBUTE_TYPE = 4;
- public static final int LOCKING = 5;
- public static final int COLUMN_COUNT = 6;
+ public static final int OBJ_ATTRIBUTE = 0;
+ public static final int OBJ_ATTRIBUTE_TYPE = 1;
+ public static final int DB_ATTRIBUTE = 2;
+ public static final int DB_ATTRIBUTE_TYPE = 3;
+ public static final int LOCKING = 4;
+ public static final int COLUMN_COUNT = 5;
private ObjEntity entity;
private DbEntity dbEntity;
@@ -151,8 +150,6 @@ public class ObjAttributeTableModel extends CayenneTableModel<ObjAttributeWrappe
public String getColumnName(int column) {
switch (column) {
- case INHERITED:
- return "In";
case OBJ_ATTRIBUTE:
return "Name";
case OBJ_ATTRIBUTE_TYPE:
@@ -170,10 +167,8 @@ public class ObjAttributeTableModel extends CayenneTableModel<ObjAttributeWrappe
public Object getValueAt(int row, int column) {
ObjAttributeWrapper attribute = getAttribute(row);
- if (column == INHERITED) {
- return attribute.isInherited();
- }
- else if (column == OBJ_ATTRIBUTE) {
+
+ if (column == OBJ_ATTRIBUTE) {
return attribute.getName();
}
else if (column == OBJ_ATTRIBUTE_TYPE) {
@@ -186,11 +181,9 @@ public class ObjAttributeTableModel extends CayenneTableModel<ObjAttributeWrappe
DbAttribute dbAttribute = attribute.getDbAttribute();
if (column == DB_ATTRIBUTE) {
return getDBAttribute(attribute, dbAttribute);
- }
- else if (column == DB_ATTRIBUTE_TYPE) {
+ } else if(column == DB_ATTRIBUTE_TYPE) {
return getDBAttributeType(attribute, dbAttribute);
- }
- else {
+ } else {
return null;
}
}
@@ -390,7 +383,7 @@ public class ObjAttributeTableModel extends CayenneTableModel<ObjAttributeWrappe
return col == DB_ATTRIBUTE;
}
- return col != DB_ATTRIBUTE_TYPE && col != INHERITED;
+ return col != DB_ATTRIBUTE_TYPE;
}
public ObjEntity getEntity() {
@@ -417,9 +410,6 @@ public class ObjAttributeTableModel extends CayenneTableModel<ObjAttributeWrappe
@Override
public void sortByColumn(final int sortCol, boolean isAscent) {
switch (sortCol) {
- case INHERITED:
- sortByElementProperty("inherited", isAscent);
- break;
case OBJ_ATTRIBUTE:
sortByElementProperty("name", isAscent);
break;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/3285651e/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributePanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributePanel.java
index 7cae33e..4df7ba3 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributePanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributePanel.java
@@ -29,63 +29,29 @@ import org.apache.cayenne.map.event.ObjAttributeListener;
import org.apache.cayenne.map.event.ObjEntityListener;
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.ProjectController;
-import org.apache.cayenne.modeler.action.ActionManager;
-import org.apache.cayenne.modeler.action.CopyAttributeRelationshipAction;
-import org.apache.cayenne.modeler.action.CutAttributeRelationshipAction;
-import org.apache.cayenne.modeler.action.ObjEntityToSuperEntityAction;
-import org.apache.cayenne.modeler.action.PasteAction;
-import org.apache.cayenne.modeler.action.RemoveAttributeRelationshipAction;
+import org.apache.cayenne.modeler.action.*;
import org.apache.cayenne.modeler.dialog.objentity.ObjAttributeInfoDialog;
import org.apache.cayenne.modeler.editor.wrapper.ObjAttributeWrapper;
-import org.apache.cayenne.modeler.event.EntityDisplayEvent;
-import org.apache.cayenne.modeler.event.ObjEntityDisplayListener;
-import org.apache.cayenne.modeler.event.ProjectOnSaveEvent;
-import org.apache.cayenne.modeler.event.ProjectOnSaveListener;
-import org.apache.cayenne.modeler.event.TablePopupHandler;
+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.CayenneTableModel;
-import org.apache.cayenne.modeler.util.DbAttributePathComboBoxRenderer;
-import org.apache.cayenne.modeler.util.DbAttributePathComboBoxEditor;
-import org.apache.cayenne.modeler.util.ModelerUtil;
-import org.apache.cayenne.modeler.util.PanelFactory;
-import org.apache.cayenne.modeler.util.ProjectUtil;
-import org.apache.cayenne.modeler.util.UIUtil;
+import org.apache.cayenne.modeler.util.*;
import org.apache.cayenne.modeler.util.combo.AutoCompletion;
-import org.apache.cayenne.swing.components.image.FilteredIconFactory;
-
-import javax.swing.BorderFactory;
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-import javax.swing.JComboBox;
-import javax.swing.JDialog;
-import javax.swing.JOptionPane;
-import javax.swing.JMenuItem;
-import javax.swing.JPanel;
-import javax.swing.JPopupMenu;
-import javax.swing.JTable;
-import javax.swing.ListSelectionModel;
-import javax.swing.UIManager;
+
+import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellEditor;
+import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Font;
+import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Collection;
+import java.util.*;
import java.util.List;
-import java.util.Map;
+
/**
* Detail view of the ObjEntity attributes.
@@ -93,8 +59,6 @@ import java.util.Map;
public class ObjEntityAttributePanel extends JPanel implements ObjEntityDisplayListener,
ObjEntityListener, ObjAttributeListener, ProjectOnSaveListener {
- private static final int INHERITANCE_COLUMN_WIDTH = 35;
-
private ProjectController mediator;
private CayenneTable table;
private TableColumnPreferences tablePreferences;
@@ -142,10 +106,13 @@ public class ObjEntityAttributePanel extends JPanel implements ObjEntityDisplayL
public void mouseReleased(MouseEvent e) {
int row = table.rowAtPoint(e.getPoint());
int col = table.columnAtPoint(e.getPoint());
- if (row >= 0 && col == ObjAttributeTableModel.INHERITED) {
- if (Boolean.TRUE.equals(table.getValueAt(row, col))) {
- ActionManager actionManager = Application.getInstance().getActionManager();
- actionManager.getAction(ObjEntityToSuperEntityAction.class).performAction(null);
+ ObjAttribute objAttribute = ((ObjAttributeTableModel)table.getModel()).getAttribute(row).getValue();
+ int columnFromModel = table.getColumnModel().getColumn(col).getModelIndex();
+ if (row >= 0 && columnFromModel == ObjAttributeTableModel.OBJ_ATTRIBUTE) {
+ if(objAttribute.isInherited()) {
+ TableCellRenderer renderer = table.getCellRenderer(row, col);
+ Rectangle rectangle = table.getCellRect(row, col, false);
+ ((CellRenderer) renderer).mouseClicked(e, rectangle.x);
}
}
}
@@ -379,20 +346,17 @@ public class ObjEntityAttributePanel extends JPanel implements ObjEntityDisplayL
protected void setUpTableStructure() {
Map<Integer, Integer> minSizes = new HashMap<>();
- Map<Integer, Integer> maxSizes = new HashMap<>();
-
- minSizes.put(ObjAttributeTableModel.INHERITED, INHERITANCE_COLUMN_WIDTH);
- maxSizes.put(ObjAttributeTableModel.INHERITED, INHERITANCE_COLUMN_WIDTH);
+ minSizes.put(ObjAttributeTableModel.OBJ_ATTRIBUTE, 150);
initComboBoxes();
- table.getColumnModel().getColumn(3).setCellRenderer(new DbAttributePathComboBoxRenderer());
- table.getColumnModel().getColumn(3).setCellEditor(new DbAttributePathComboBoxEditor());
+ table.getColumnModel().getColumn(ObjAttributeTableModel.DB_ATTRIBUTE).setCellRenderer(new DbAttributePathComboBoxRenderer());
+ table.getColumnModel().getColumn(ObjAttributeTableModel.DB_ATTRIBUTE).setCellEditor(new DbAttributePathComboBoxEditor());
tablePreferences.bind(
table,
minSizes,
- maxSizes,
+ null,
null,
ObjAttributeTableModel.OBJ_ATTRIBUTE,
true);
@@ -446,32 +410,39 @@ public class ObjEntityAttributePanel extends JPanel implements ObjEntityDisplayL
ObjAttributeTableModel model = (ObjAttributeTableModel) table.getModel();
column = table.getColumnModel().getColumn(column).getModelIndex();
ObjAttribute attribute = model.getAttribute(row).getValue();
- if (column != ObjAttributeTableModel.INHERITED) {
-
- if (!model.isCellEditable(row, column)) {
- setForeground(Color.GRAY);
- } else {
- setForeground(isSelected && !hasFocus ? table.getSelectionForeground() : table.getForeground());
- }
- if (attribute.isInherited()) {
- Font font = getFont();
- Font newFont = font.deriveFont(Font.ITALIC);
- setFont(newFont);
- }
- setIcon(null);
+ if (!model.isCellEditable(row, column)) {
+ setForeground(isSelected ? new Color(0xCECECE) : Color.GRAY);
} else {
- if (attribute.isInherited()) {
- Icon objEntityIcon = ModelerUtil.buildIcon("icon-inheritance.png");
- setIcon(objEntityIcon);
+ setForeground(isSelected && !hasFocus ? table.getSelectionForeground() : table.getForeground());
+ }
+
+ setIcon(null);
+
+ if (attribute.isInherited()) {
+ Font font = getFont();
+ Font newFont = font.deriveFont(Font.ITALIC);
+ setFont(newFont);
+ if(column == ObjAttributeTableModel.OBJ_ATTRIBUTE) {
+ ImageIcon icon = ModelerUtil.buildIcon("icon-inheritance.png");
+ setIcon(icon);
}
- setText("");
}
+
setFont(UIManager.getFont("Label.font"));
setBorder(BorderFactory.createEmptyBorder(0,5,0,0));
return this;
}
+
+ public void mouseClicked(MouseEvent event, int x) {
+ Point point = event.getPoint();
+ ImageIcon icon = ModelerUtil.buildIcon("icon-inheritance.png");
+ if(point.x - x <= icon.getIconWidth()) {
+ ActionManager actionManager = Application.getInstance().getActionManager();
+ actionManager.getAction(ObjEntityToSuperEntityAction.class).performAction(null);
+ }
+ }
}
private void resetTableModel() {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/3285651e/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
index b48a68e..8dec1bf 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
@@ -31,6 +31,7 @@ import org.apache.cayenne.modeler.ProjectController;
import org.apache.cayenne.modeler.action.ActionManager;
import org.apache.cayenne.modeler.action.CopyAttributeRelationshipAction;
import org.apache.cayenne.modeler.action.CutAttributeRelationshipAction;
+import org.apache.cayenne.modeler.action.ObjEntityToSuperEntityAction;
import org.apache.cayenne.modeler.action.PasteAction;
import org.apache.cayenne.modeler.action.RemoveAttributeRelationshipAction;
import org.apache.cayenne.modeler.dialog.objentity.ObjRelationshipInfo;
@@ -51,6 +52,7 @@ import org.slf4j.LoggerFactory;
import javax.swing.BorderFactory;
import javax.swing.DefaultCellEditor;
import javax.swing.Icon;
+import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
@@ -65,12 +67,17 @@ import javax.swing.event.ListSelectionListener;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
+import java.awt.Point;
+import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
import java.util.Collection;
import java.util.List;
@@ -130,6 +137,24 @@ public class ObjEntityRelationshipPanel extends JPanel implements ObjEntityDispl
ObjRelationshipTableModel.class,
"objEntity/relationshipTable");
+ table.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseReleased(MouseEvent e) {
+ int row = table.rowAtPoint(e.getPoint());
+ int col = table.columnAtPoint(e.getPoint());
+ ObjRelationshipTableModel tableModel = ((ObjRelationshipTableModel) table.getModel());
+ ObjRelationship relationship = tableModel.getRelationship(row);
+ int columnFromModel = table.getColumnModel().getColumn(col).getModelIndex();
+ if (row >= 0 && columnFromModel == ObjRelationshipTableModel.REL_NAME) {
+ if(relationship.getSourceEntity() != tableModel.getEntity()) {
+ TableCellRenderer renderer = table.getCellRenderer(row, col);
+ Rectangle rectangle = table.getCellRect(row, col, false);
+ ((StringRenderer) renderer).mouseClicked(e, rectangle.x);
+ }
+ }
+ }
+ });
+
// Create and install a popup
Icon ico = ModelerUtil.buildIcon("icon-edit.png");
resolveMenu = new CayenneAction.CayenneMenuItem("Database Mapping", ico);
@@ -424,19 +449,36 @@ public class ObjEntityRelationshipPanel extends JPanel implements ObjEntityDispl
.getModel();
ObjRelationship relationship = model.getRelationship(row);
+ setIcon(null);
+
+ column = table.getColumnModel().getColumn(column).getModelIndex();
if (relationship != null
&& relationship.getSourceEntity() != model.getEntity()) {
- setForeground(Color.GRAY);
+ setForeground(isSelected ? new Color(0xCECECE) : Color.GRAY);
+ if(column == ObjRelationshipTableModel.REL_NAME) {
+ ImageIcon icon = ModelerUtil.buildIcon("icon-inheritance.png");
+ setIcon(icon);
+ }
} else {
setForeground(isSelected && !hasFocus
? table.getSelectionForeground()
: table.getForeground());
}
+
setBorder(BorderFactory.createEmptyBorder(0,5,0,0));
setFont(UIManager.getFont("Label.font"));
return this;
}
+
+ public void mouseClicked(MouseEvent event, int x) {
+ Point point = event.getPoint();
+ ImageIcon icon = ModelerUtil.buildIcon("icon-inheritance.png");
+ if(point.x - x <= icon.getIconWidth()) {
+ ActionManager actionManager = Application.getInstance().getActionManager();
+ actionManager.getAction(ObjEntityToSuperEntityAction.class).performAction(null);
+ }
+ }
}
private class ObjRelationshipListSelectionListener implements ListSelectionListener {
[5/6] cayenne git commit: Fix NPE
Posted by nt...@apache.org.
Fix NPE
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/467371da
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/467371da
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/467371da
Branch: refs/heads/STABLE-4.0
Commit: 467371da96b0e2de1eff1bf97aad7c7fdd3ab0a3
Parents: 50668a4
Author: Nikita Timofeev <st...@gmail.com>
Authored: Thu Sep 20 17:08:08 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Tue Sep 25 12:41:24 2018 +0300
----------------------------------------------------------------------
.../cayenne/modeler/util/DbRelationshipPathComboBoxEditor.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/467371da/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbRelationshipPathComboBoxEditor.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbRelationshipPathComboBoxEditor.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbRelationshipPathComboBoxEditor.java
index b79e68d..1ad5683 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbRelationshipPathComboBoxEditor.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbRelationshipPathComboBoxEditor.java
@@ -100,7 +100,7 @@ public class DbRelationshipPathComboBoxEditor extends PathChooserComboBoxCellEdi
//we need object target to save it in model
DbEntity lastEntity = ((DbRelationship) currentNode).getTargetEntity();
- if(lastEntity == null) {
+ if(lastEntity != null) {
Collection<ObjEntity> objEntities = ((DbRelationship) currentNode).getTargetEntity().
getDataMap().getMappedEntities(lastEntity);
ObjEntity objectTarget = objEntities.isEmpty() ? null : objEntities.iterator().next();
[6/6] cayenne git commit: Merge PR #324
Posted by nt...@apache.org.
Merge PR #324
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/20f9d389
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/20f9d389
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/20f9d389
Branch: refs/heads/STABLE-4.0
Commit: 20f9d38992e01e5319b02f0f6c50ebf6662a09f9
Parents: 15471c0 467371d
Author: Nikita Timofeev <st...@gmail.com>
Authored: Mon Oct 1 18:03:23 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Mon Oct 1 18:03:23 2018 +0300
----------------------------------------------------------------------
RELEASE-NOTES.txt | 1 +
.../objentity/ObjAttributeInfoDialog.java | 10 +--
.../modeler/editor/ObjAttributeTableModel.java | 32 +++------
.../modeler/editor/ObjEntityAttributePanel.java | 75 +++++++++++---------
.../editor/ObjEntityRelationshipPanel.java | 44 +++++++++++-
.../util/DbRelationshipPathComboBoxEditor.java | 32 ++++++---
6 files changed, 125 insertions(+), 69 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/20f9d389/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --cc RELEASE-NOTES.txt
index 2ec587f,e2e491c..7b5e681
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@@ -15,7 -15,7 +15,8 @@@ Date
=======
Changes/New Features:
+CAY-2473 Modeler: cleanup attributes and relationship editors
+ CAY-2475 Modeler: move inheritance icon to name column in objAttr table and objRel table
Bug Fixes:
http://git-wip-us.apache.org/repos/asf/cayenne/blob/20f9d389/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributePanel.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/20f9d389/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
----------------------------------------------------------------------
[4/6] cayenne git commit: Fix NPE
Posted by nt...@apache.org.
Fix NPE
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/50668a4b
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/50668a4b
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/50668a4b
Branch: refs/heads/STABLE-4.0
Commit: 50668a4b85127f3199cfb16949b6980c10c1b092
Parents: 3645943
Author: Nikita Timofeev <st...@gmail.com>
Authored: Thu Sep 20 17:03:45 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Tue Sep 25 12:41:04 2018 +0300
----------------------------------------------------------------------
.../util/DbRelationshipPathComboBoxEditor.java | 32 ++++++++++++++------
1 file changed, 23 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/50668a4b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbRelationshipPathComboBoxEditor.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbRelationshipPathComboBoxEditor.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbRelationshipPathComboBoxEditor.java
index a3e6935..b79e68d 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbRelationshipPathComboBoxEditor.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbRelationshipPathComboBoxEditor.java
@@ -22,9 +22,11 @@ package org.apache.cayenne.modeler.util;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.editor.ObjRelationshipTableModel;
import javax.swing.JLabel;
+import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.text.JTextComponent;
import java.awt.Component;
@@ -98,12 +100,14 @@ public class DbRelationshipPathComboBoxEditor extends PathChooserComboBoxCellEdi
//we need object target to save it in model
DbEntity lastEntity = ((DbRelationship) currentNode).getTargetEntity();
- Collection<ObjEntity> objEntities = ((DbRelationship) currentNode).getTargetEntity().
- getDataMap().getMappedEntities(lastEntity);
- ObjEntity objectTarget = objEntities.isEmpty() ? null : objEntities.iterator().next();
- model.getRelationship(row).setTargetEntityName(objectTarget);
- model.setUpdatedValueAt(dbRelationshipPath, row, REL_TARGET_PATH_COLUMN);
- model.getRelationship(row).setDbRelationshipPath(dbRelationshipPath);
+ if(lastEntity == null) {
+ Collection<ObjEntity> objEntities = ((DbRelationship) currentNode).getTargetEntity().
+ getDataMap().getMappedEntities(lastEntity);
+ ObjEntity objectTarget = objEntities.isEmpty() ? null : objEntities.iterator().next();
+ model.getRelationship(row).setTargetEntityName(objectTarget);
+ model.setUpdatedValueAt(dbRelationshipPath, row, REL_TARGET_PATH_COLUMN);
+ model.getRelationship(row).setDbRelationshipPath(dbRelationshipPath);
+ }
model.getRelationship(row).setMapKey(null);
}
table.repaint();
@@ -154,17 +158,21 @@ public class DbRelationshipPathComboBoxEditor extends PathChooserComboBoxCellEdi
return pathString.replaceAll(lastStringInPath + '$', "");
}
- private void changeObjEntity(String path){
+ private boolean changeObjEntity(String path){
Object currentNode = getCurrentNode(path);
if (currentNode instanceof DbEntity){
- return;
+ return false;
}
DbEntity lastEntity = ((DbRelationship) currentNode).getTargetEntity();
+ if(lastEntity == null) {
+ return false;
+ }
Collection<ObjEntity> objEntities = ((DbRelationship) currentNode).getTargetEntity().
getDataMap().getMappedEntities(lastEntity);
ObjEntity objectTarget = objEntities.isEmpty() ? null : objEntities.iterator().next();
model.getRelationship(row).setTargetEntityName(objectTarget);
table.repaint();
+ return true;
}
@Override
@@ -174,6 +182,12 @@ public class DbRelationshipPathComboBoxEditor extends PathChooserComboBoxCellEdi
@Override
public void focusLost(FocusEvent focusEvent) {
String path = model.getRelationship(row).getDbRelationshipPath();
- changeObjEntity(path);
+ if(!changeObjEntity(path)) {
+ JOptionPane.showMessageDialog(
+ Application.getFrame(),
+ "Can't set dbAttribute path. At first set target entity in dbEntity.",
+ "Error",
+ JOptionPane.ERROR_MESSAGE);
+ }
}
}
[3/6] cayenne git commit: Fix NPE
Posted by nt...@apache.org.
Fix NPE
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/3645943b
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/3645943b
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/3645943b
Branch: refs/heads/STABLE-4.0
Commit: 3645943bfb04e365929dba7949ef5cb2111d299c
Parents: 4be0bea
Author: Nikita Timofeev <st...@gmail.com>
Authored: Wed Sep 19 14:13:59 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Tue Sep 25 12:40:41 2018 +0300
----------------------------------------------------------------------
.../modeler/dialog/objentity/ObjAttributeInfoDialog.java | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/3645943b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjAttributeInfoDialog.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjAttributeInfoDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjAttributeInfoDialog.java
index 8e4c5f8..ba078b4 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjAttributeInfoDialog.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjAttributeInfoDialog.java
@@ -63,6 +63,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
public class ObjAttributeInfoDialog extends CayenneController implements TreeSelectionListener {
@@ -422,11 +423,12 @@ public class ObjAttributeInfoDialog extends CayenneController implements TreeSel
public boolean isChange() {
- boolean isOvverideTableChange = ((OverrideEmbeddableAttributeTableModel) view.getOverrideAttributeTable()
+ boolean isOverrideTableChange = ((OverrideEmbeddableAttributeTableModel) view.getOverrideAttributeTable()
.getModel()).isAttributeOverrideChange();
- return isOvverideTableChange || !attribute.getName().equals(view.getAttributeName().getText())
- || (attribute.getType() == null && view.getTypeComboBox().getSelectedItem().toString() != null)
- || !attribute.getType().equals(view.getTypeComboBox().getSelectedItem().toString());
+ return isOverrideTableChange
+ || !attribute.getName().equals(view.getAttributeName().getText())
+ || (attribute.getType() == null && view.getTypeComboBox().getSelectedItem() != null)
+ || !Objects.equals(attribute.getType(), view.getTypeComboBox().getSelectedItem());
}
public void saveMapping() {
[2/6] cayenne git commit: Modeler: Adjust disabled selection
foreground color
Posted by nt...@apache.org.
Modeler: Adjust disabled selection foreground color
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/4be0bea1
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/4be0bea1
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/4be0bea1
Branch: refs/heads/STABLE-4.0
Commit: 4be0bea1b26dfc0b08727eeb8e43fa54234eb8de
Parents: 3285651
Author: Nikita Timofeev <st...@gmail.com>
Authored: Wed Sep 19 10:29:59 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Tue Sep 25 12:14:53 2018 +0300
----------------------------------------------------------------------
.../modeler/editor/ObjEntityAttributePanel.java | 52 +++++++++++++++++---
.../editor/ObjEntityRelationshipPanel.java | 2 +-
2 files changed, 45 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/4be0bea1/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributePanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributePanel.java
index 4df7ba3..229b68c 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributePanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributePanel.java
@@ -29,29 +29,65 @@ import org.apache.cayenne.map.event.ObjAttributeListener;
import org.apache.cayenne.map.event.ObjEntityListener;
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.ProjectController;
-import org.apache.cayenne.modeler.action.*;
+import org.apache.cayenne.modeler.action.ActionManager;
+import org.apache.cayenne.modeler.action.CopyAttributeRelationshipAction;
+import org.apache.cayenne.modeler.action.CutAttributeRelationshipAction;
+import org.apache.cayenne.modeler.action.ObjEntityToSuperEntityAction;
+import org.apache.cayenne.modeler.action.PasteAction;
+import org.apache.cayenne.modeler.action.RemoveAttributeRelationshipAction;
import org.apache.cayenne.modeler.dialog.objentity.ObjAttributeInfoDialog;
import org.apache.cayenne.modeler.editor.wrapper.ObjAttributeWrapper;
-import org.apache.cayenne.modeler.event.*;
+import org.apache.cayenne.modeler.event.EntityDisplayEvent;
+import org.apache.cayenne.modeler.event.ObjEntityDisplayListener;
+import org.apache.cayenne.modeler.event.ProjectOnSaveEvent;
+import org.apache.cayenne.modeler.event.ProjectOnSaveListener;
+import org.apache.cayenne.modeler.event.TablePopupHandler;
import org.apache.cayenne.modeler.pref.TableColumnPreferences;
-import org.apache.cayenne.modeler.util.*;
+import org.apache.cayenne.modeler.util.CayenneAction;
+import org.apache.cayenne.modeler.util.CayenneTable;
+import org.apache.cayenne.modeler.util.CayenneTableModel;
+import org.apache.cayenne.modeler.util.DbAttributePathComboBoxEditor;
+import org.apache.cayenne.modeler.util.DbAttributePathComboBoxRenderer;
+import org.apache.cayenne.modeler.util.ModelerUtil;
+import org.apache.cayenne.modeler.util.PanelFactory;
+import org.apache.cayenne.modeler.util.ProjectUtil;
+import org.apache.cayenne.modeler.util.UIUtil;
import org.apache.cayenne.modeler.util.combo.AutoCompletion;
-import javax.swing.*;
+import javax.swing.BorderFactory;
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+import javax.swing.JComboBox;
+import javax.swing.JDialog;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPopupMenu;
+import javax.swing.JTable;
+import javax.swing.ListSelectionModel;
+import javax.swing.UIManager;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
-import java.awt.*;
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Font;
+import java.awt.Point;
+import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
-
+import java.util.Map;
/**
* Detail view of the ObjEntity attributes.
@@ -412,7 +448,7 @@ public class ObjEntityAttributePanel extends JPanel implements ObjEntityDisplayL
ObjAttribute attribute = model.getAttribute(row).getValue();
if (!model.isCellEditable(row, column)) {
- setForeground(isSelected ? new Color(0xCECECE) : Color.GRAY);
+ setForeground(isSelected ? new Color(0xEEEEEE) : Color.GRAY);
} else {
setForeground(isSelected && !hasFocus ? table.getSelectionForeground() : table.getForeground());
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/4be0bea1/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
index 8dec1bf..b3102ce 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
@@ -454,7 +454,7 @@ public class ObjEntityRelationshipPanel extends JPanel implements ObjEntityDispl
column = table.getColumnModel().getColumn(column).getModelIndex();
if (relationship != null
&& relationship.getSourceEntity() != model.getEntity()) {
- setForeground(isSelected ? new Color(0xCECECE) : Color.GRAY);
+ setForeground(isSelected ? new Color(0xEEEEEE) : Color.GRAY);
if(column == ObjRelationshipTableModel.REL_NAME) {
ImageIcon icon = ModelerUtil.buildIcon("icon-inheritance.png");
setIcon(icon);