TEXT_INPLACE_EDITOR_R0: TEXT_INPLACE_EDITOR-demo-27.04.2009.patch
File TEXT_INPLACE_EDITOR-demo-27.04.2009.patch, 2.5 KB (added by nenko, 16 years ago) |
---|
-
src/test/java/org/sophie2/base/model/text/SwingDemoTest.java
### Eclipse Workspace Patch 1.0 #P org.sophie2.base.model.text
71 71 .setString("Bla bla bla ! 1 :) : ) :) : ): ) :) \n2 :) : ): )\n :) :):)"); 72 72 HotTextPane pane = new HotTextPane(); 73 73 pane.text().set(text); 74 pane.caretPos().set(text.navigator().get().getBeginning()); 75 pane.markPos().set(text.navigator().get().getBeginning()); 74 76 pane.bounds().set(new ImmRect(0, 0, 300, 300)); 75 77 76 78 JButton bold = new JButton("Bold"); -
src/main/java/org/sophie2/base/model/text/swing/HotTextPaneLogic.java
1 1 package org.sophie2.base.model.text.swing; 2 2 3 3 import java.awt.event.KeyEvent; 4 import java.util.ArrayList; 4 5 import java.util.Arrays; 5 6 6 7 import org.sophie2.base.model.text.HotPos; … … 70 71 //TODO: This unwrapping is bad. The INSERT_CHAR event should have a parameter instead. 71 72 EventR3 kbdEvent = event.getCausingEvent(EventR3.class); 72 73 KeyEvent awtKeyEvent = kbdEvent.getCausingEvent(KeyEvent.class); 74 if (awtKeyEvent.getKeyChar() == '\b') { 75 return false; 76 } 73 77 text.replaceText(source.caretPos().get(), source.caretPos().get(), 74 78 Arrays.asList(new HotUnit(awtKeyEvent.getKeyChar()))); 79 source.text().set(text); 75 80 76 81 // 77 82 // text.replaceText(source.caretPos().get(), … … 140 145 return textPane.caretPos().get(); 141 146 } 142 147 143 } 148 }, 149 150 /** 151 * Defines the behavior when deleting text. 152 * 153 * @author nenko 154 * 155 */ 156 DELETE_TEXT { 157 158 @Override 159 public void defineFilter(EventFilterBuilder filter) { 160 filter.setSourceClass(HotTextPane.class); 161 filter.setEventId(HotTextPane.Ops.DELETE); 162 } 163 164 @Override 165 public boolean handle(EventR3 event) { 166 HotTextPane source = event 167 .getSource(HotTextPane.class); 168 169 HotText text = source.text().get(); 170 Navigator nav = text.navigator().get(); 171 HotPos beforeEnd = nav.advance(nav.getEnd(), -1); 172 text.replaceText(beforeEnd, nav.getEnd(), 173 new ArrayList<HotUnit>()); 174 175 source.text().set(text); 176 177 return true; 178 } 179 180 }, 144 181 145 182 } 183 No newline at end of file