Code refactoring
[sixth-3d.git] / src / main / java / eu / svjatoslav / sixth / e3d / gui / textEditorComponent / TextEditComponent.java
index a6987eb..9ee9109 100755 (executable)
@@ -8,6 +8,7 @@ import eu.svjatoslav.sixth.e3d.geometry.Point2D;
 import eu.svjatoslav.sixth.e3d.gui.GuiComponent;
 import eu.svjatoslav.sixth.e3d.gui.TextPointer;
 import eu.svjatoslav.sixth.e3d.gui.ViewPanel;
+import eu.svjatoslav.sixth.e3d.gui.humaninput.KeyboardHelper;
 import eu.svjatoslav.sixth.e3d.math.Transform;
 import eu.svjatoslav.sixth.e3d.renderer.raster.Color;
 import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.textcanvas.TextCanvas;
@@ -22,28 +23,30 @@ import java.util.Set;
 public class TextEditComponent extends GuiComponent implements ClipboardOwner {
 
     private static final long serialVersionUID = -7118833957783600630L;
-    // lines that need to be repainted
+
+    /**
+     * Text rows that need to be repainted.
+     */
     private final Set<Integer> dirtyRows = new HashSet<>();
+
     private final TextCanvas textCanvas;
     public int scrolledCharacters = 0, scrolledLines = 0;
     public boolean selecting = false;
     public TextPointer selectionStart = new TextPointer(0, 0);
     public TextPointer selectionEnd = new TextPointer(0, 0);
-    public TextPointer cursorLocation;
+    public TextPointer cursorLocation = new TextPointer(0, 0);
     Page page = new Page();
     ColorConfig colorConfig = new ColorConfig();
     boolean repaintPage = false;
 
     public TextEditComponent(final Transform transform,
-                             final ViewPanel viewPanel, final Point2D size) {
-        super(transform, viewPanel, size.to3D());
-
-        cursorLocation = new TextPointer(0, 0);
+                             final ViewPanel viewPanel, final Point2D sizeInWorldCoordinates) {
+        super(transform, viewPanel, sizeInWorldCoordinates.to3D());
 
         // initialize visual panel
 
-        final int columns = (int) (size.x / TextCanvas.FONT_CHAR_WIDTH);
-        final int rows = (int) (size.y / TextCanvas.FONT_CHAR_HEIGHT);
+        final int columns = (int) (sizeInWorldCoordinates.x / TextCanvas.FONT_CHAR_WIDTH);
+        final int rows = (int) (sizeInWorldCoordinates.y / TextCanvas.FONT_CHAR_HEIGHT);
 
         textCanvas = new TextCanvas(new Transform(), new TextPointer(rows,
                 columns), Color.WHITE, colorConfig.normalBack);
@@ -393,17 +396,16 @@ public class TextEditComponent extends GuiComponent implements ClipboardOwner {
     }
 
     private void processKeyEvent(final KeyEvent event) {
-        final int modifiers = event.getModifiers();
-
+        final int modifiers = event.getModifiersEx();
         final int keyCode = event.getKeyCode();
         final char keyChar = event.getKeyChar();
 
         // System.out.println("Keycode:" + keyCode s+ ", keychar:" + keyChar);
 
-        if (KeyboardHelper.isAlt(modifiers))
+        if (KeyboardHelper.isAltPressed(modifiers))
             return;
 
-        if (KeyboardHelper.isCtrl(modifiers)) {
+        if (KeyboardHelper.isCtrlPressed(modifiers)) {
             processCtrlCombinations(keyCode);
             return;
         }
@@ -420,10 +422,7 @@ public class TextEditComponent extends GuiComponent implements ClipboardOwner {
             return;
         }
 
-        // System.out.println("Co:" + String.valueOf(code) + "  Ch:" +
-        // String.valueOf(keyChar));
-
-        if (KeyboardHelper.isShift(modifiers)) {
+        if (KeyboardHelper.isShiftPressed(modifiers)) {
             if (!selecting)
                 attemptSelectionStart:{
 
@@ -434,9 +433,6 @@ public class TextEditComponent extends GuiComponent implements ClipboardOwner {
                             | (keyChar == 8) | (keyChar == 9))
                         break attemptSelectionStart;
 
-                    // System.out.println("Selection started:" + keyChar + " "
-                    // + keyCode);
-
                     selectionStart = new TextPointer(cursorLocation);
                     selectionEnd = selectionStart;
                     selecting = true;
@@ -492,7 +488,7 @@ public class TextEditComponent extends GuiComponent implements ClipboardOwner {
     }
 
     private void processTab(final int modifiers) {
-        if (KeyboardHelper.isShift(modifiers)) {
+        if (KeyboardHelper.isShiftPressed(modifiers)) {
             if (selectionStart.compareTo(selectionEnd) != 0) {
                 // dedent multiple lines
                 ensureSelectionOrder();