[Exmmt-commit] SF.net SVN: exmmt: [116] net.sourceforge.exmmt/trunk/src/java/net/ sourceforge/exmmt
Status: Inactive
Brought to you by:
lgrammel
|
From: <lgr...@us...> - 2006-10-12 17:54:40
|
Revision: 116
http://svn.sourceforge.net/exmmt/?rev=116&view=rev
Author: lgrammel
Date: 2006-10-12 10:54:31 -0700 (Thu, 12 Oct 2006)
Log Message:
-----------
#1500774 scenario "shopping list"
Modified Paths:
--------------
net.sourceforge.exmmt/trunk/src/java/net/sourceforge/exmmt/NewModelEditor.java
net.sourceforge.exmmt/trunk/src/java/net/sourceforge/exmmt/NewModelText.java
Modified: net.sourceforge.exmmt/trunk/src/java/net/sourceforge/exmmt/NewModelEditor.java
===================================================================
--- net.sourceforge.exmmt/trunk/src/java/net/sourceforge/exmmt/NewModelEditor.java 2006-10-12 17:43:30 UTC (rev 115)
+++ net.sourceforge.exmmt/trunk/src/java/net/sourceforge/exmmt/NewModelEditor.java 2006-10-12 17:54:31 UTC (rev 116)
@@ -54,7 +54,7 @@
IModelElement rootArea;
- private Canvas control;
+ Canvas control;
private Document document;
Modified: net.sourceforge.exmmt/trunk/src/java/net/sourceforge/exmmt/NewModelText.java
===================================================================
--- net.sourceforge.exmmt/trunk/src/java/net/sourceforge/exmmt/NewModelText.java 2006-10-12 17:43:30 UTC (rev 115)
+++ net.sourceforge.exmmt/trunk/src/java/net/sourceforge/exmmt/NewModelText.java 2006-10-12 17:54:31 UTC (rev 116)
@@ -42,6 +42,10 @@
private Caret caret;
+ private Controller controller;
+
+ private Focus focus;
+
public NewModelText(NewModelEditor editor, Composite parent, int style) {
super(parent, style);
this.editor = editor;
@@ -53,7 +57,9 @@
handlePaint(event);
break;
case SWT.KeyDown:
- NewModelText.this.editor.handleKeyDown(event);
+ handleKeyEvent(event);
+ NewModelText.this.editor.control.redraw();
+// NewModelText.this.editor.handleKeyDown(event);
break;
}
}
@@ -64,8 +70,28 @@
caret = new Caret(this, SWT.NULL);
setCaret(caret);
+
+ controller = createController();
+ focus = new Focus(controller);
}
+ protected void handleKeyEvent(Event event) {
+ if ((event.stateMask & SWT.CTRL) == SWT.CTRL) {
+ if (event.keyCode == SWT.ARROW_UP) {
+ focus.moveToParent();
+ }
+ if (event.keyCode == SWT.ARROW_DOWN) {
+ focus.moveToChild();
+ }
+ if (event.keyCode == SWT.ARROW_LEFT) {
+ focus.moveToPreviousSibling();
+ }
+ if (event.keyCode == SWT.ARROW_RIGHT) {
+ focus.moveToNextSibling();
+ }
+ }
+ }
+
public void dispose() {
caret.dispose();
super.dispose();
@@ -84,21 +110,16 @@
IDrawArea area = new DefaultDrawArea(gc);
ISizeCalculator sizeCalculator = new DefaultSizeCalculator(gc);
- Controller controller = createController();
- Focus focus = new Focus(controller);
-
- // @tag problem: focus rendering needs exact element position
- // one element may have more than one position if it is rendered at different
- // locations
-
- // clean solution: method that gathers all the positions the focused element
+ // clean solution: method that gathers all the positions the focused
+ // element
// appears at
- IRenderer focusedElementRenderer = focus.getFocusedElement().getRenderer();
+ IRenderer focusedElementRenderer = focus.getFocusedElement()
+ .getRenderer();
IRenderer renderer = controller.getRenderer();
-
+
renderer.calculateSize(sizeCalculator);
renderer.render(area);
-
+
List<Point> locations = renderer.getLocations(focusedElementRenderer);
Rectangle size = focusedElementRenderer.getSize();
for (Point point : locations) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|