Преглед изворни кода

Stops editing of cells, if canvas is clicked

Andreas T. Meyer-Berg пре 7 година
родитељ
комит
3d12d5399f
3 измењених фајлова са 19 додато и 0 уклоњено
  1. 17 0
      src/ui/view/AbstractCanvas.java
  2. 1 0
      src/ui/view/MyCanvas.java
  3. 1 0
      src/ui/view/UpperNodeCanvas.java

+ 17 - 0
src/ui/view/AbstractCanvas.java

@@ -6,6 +6,7 @@ import ui.controller.UpdateController;
 import ui.model.Model;
 
 import javax.swing.*;
+import javax.swing.table.JTableHeader;
 
 import java.awt.*;
 import java.awt.event.MouseEvent;
@@ -659,4 +660,20 @@ public abstract class AbstractCanvas extends JPanel {
 		/** set new Position */
 		cps.setPosition(p.x-x_off, p.y-y_off);
 	}
+	
+	protected void stopEditing() {
+		/**
+		 * Stop Editing, if mouse exits the Table
+		 */
+		JTable holElem = model.getTableHolonElement();
+		CellEditor cellEditor = holElem.getCellEditor();
+		if (cellEditor != null) {
+		    if (cellEditor.getCellEditorValue() != null) {
+		    	/** TODO: Maybe try to save current Data */
+		        cellEditor.stopCellEditing();
+		    } else {
+		        cellEditor.cancelCellEditing();
+		    }
+		}
+	}
 }

+ 1 - 0
src/ui/view/MyCanvas.java

@@ -533,6 +533,7 @@ public class MyCanvas extends AbstractCanvas implements MouseListener,
 
 	@Override
 	public void mousePressed(MouseEvent e) {
+		stopEditing();
 		tempCps = null;
 		edgeHighlight = null;
 		controller.setSelecteEdge(null);

+ 1 - 0
src/ui/view/UpperNodeCanvas.java

@@ -599,6 +599,7 @@ public class UpperNodeCanvas extends AbstractCanvas implements MouseListener, Mo
 
     @Override
     public void mousePressed(MouseEvent e) {
+    	stopEditing();
         tempCps = null;
         dataSelected = null;
         edgeHighlight = null;