logo       

Re: Delete Not working still: msg#00064

java.netbeans.modules.graph.user

Subject: Re: Delete Not working still

Hi David!

Well this exhibits the same behavior....when I select another widget it won't delete....

Chris
public class EnterKeyProcessingTest {
private static WidgetAction deleteAction = new KeyEventLoggerAction();
public static void main(String[] args) {
ObjectScene scene = new ObjectScene();
LayerWidget main = new LayerWidget(scene);
LayerWidget interaction = new LayerWidget(scene);
scene.addChild(main);
scene.addChild(interaction);
main.setLayout(LayoutFactory.createVerticalFlowLayout());
// scene.setLayout(LayoutFactory.createVerticalFlowLayout ());
ComponentWidget label1 = new ComponentWidget(scene,new JTextArea("HI MOM"));
label1.getActions().addAction(deleteAction);
label1.getActions().addAction(ActionFactory.createSelectAction(new KeySelectProvider()));
main.addChild(label1);
LabelWidget label2 = new LabelWidget(scene, "Second editable label.");
label2.getActions().addAction(deleteAction);
label2.getActions().addAction(ActionFactory.createSelectAction(new KeySelectProvider()));
main.addChild(label2);
LabelWidget label3 = new LabelWidget(scene, "Third non-editable label. Should not receive any key event.");
label3.getActions().addAction(deleteAction);
label3.getActions().addAction(ActionFactory.createSelectAction(new KeySelectProvider()));
main.addChild(label3);
scene.setKeyEventProcessingType(EventProcessingType.FOCUSED_WIDGET_AND_ITS_PARENTS);
// scene.setFocusedWidget (label2);
SceneSupport.show(scene);
}
private static class KeySelectProvider implements SelectProvider {
public boolean isAimingAllowed(Widget widget, Point localLocation, boolean invertSelection) {
return false;
}

public boolean isSelectionAllowed(Widget widget, Point localLocation, boolean invertSelection) {
return true;
}

public void select(Widget widget, Point localLocation, boolean invertSelection) {
Scene scene = widget.getScene();
scene.setFocusedWidget(widget);
}
}
private static class KeyEventLoggerAction extends WidgetAction.Adapter {
public State keyPressed(Widget widget, WidgetKeyEvent event) {
System.out.println("KeyPressed at " + ((LabelWidget) widget).getLabel());
return State.REJECTED;
}
public State keyReleased(final Widget widget, WidgetKeyEvent event) {
if (event.getKeyCode() == KeyEvent.VK_DELETE) {
System.out.println("KeyReleased at " + ((LabelWidget) widget).getLabel());
final ObjectScene scene = (ObjectScene)widget.getScene();
scene.findObject(widget);
widget.removeFromParent();
return State.CONSUMED;
}
return State.REJECTED;
}
public State keyTyped(Widget widget, WidgetKeyEvent event) {
System.out.println("KeyTyped at " + ((LabelWidget) widget).getLabel());
return State.REJECTED;
}
}
private static class LabelEditor implements TextFieldInplaceEditor {
public boolean isEnabled(Widget widget) {
return true;
}

public String getText(Widget widget) {
return ((LabelWidget) widget).getLabel();
}
public void setText(Widget widget, String text) {
((LabelWidget) widget).setLabel(text);
}
}
}


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise