Skip to content

Commit c2d18ee

Browse files
committed
get-cell works for Nebula Grid now
1 parent e5043b8 commit c2d18ee

4 files changed

Lines changed: 31 additions & 4 deletions

File tree

modules/nebula/plugins/org.eclipse.rcptt.tesla.nebula.impl/src/org/eclipse/rcptt/tesla/nebula/NebulaUIPlayerExtension.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ public GridCell(GridItem w, SWTUIPlayer p, int column) {
5555
public GridItem unwrap() {
5656
return (GridItem) super.unwrap();
5757
}
58+
59+
@Override
60+
public String getText() {
61+
return unwrap().getText(getColumn());
62+
}
5863
}
5964

6065
@Override
@@ -93,9 +98,9 @@ else if (f.kind.is(NebulaElementKinds.ITEM_CELL))
9398
return ItemCell.select(p, f);
9499
else if (f.kind.is(NebulaElementKinds.EMPTY_AREA))
95100
return EmptyArea.select(p, f);
101+
default:
102+
return null;
96103
}
97-
98-
return null;
99104
}
100105

101106
@Override

modules/nebula/plugins/org.eclipse.rcptt.tesla.nebula.impl/src/org/eclipse/rcptt/tesla/nebula/NebulaUIProcessor.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@
4545
import org.eclipse.rcptt.tesla.core.protocol.DoubleClick;
4646
import org.eclipse.rcptt.tesla.core.protocol.DragCommand;
4747
import org.eclipse.rcptt.tesla.core.protocol.ElementKind;
48+
import org.eclipse.rcptt.tesla.core.protocol.GetText;
49+
import org.eclipse.rcptt.tesla.core.protocol.GetTextResponse;
4850
import org.eclipse.rcptt.tesla.core.protocol.IElementProcessorMapper;
4951
import org.eclipse.rcptt.tesla.core.protocol.ProtocolPackage;
5052
import org.eclipse.rcptt.tesla.core.protocol.SelectCommand;
@@ -54,6 +56,7 @@
5456
import org.eclipse.rcptt.tesla.core.protocol.raw.Command;
5557
import org.eclipse.rcptt.tesla.core.protocol.raw.Element;
5658
import org.eclipse.rcptt.tesla.core.protocol.raw.Response;
59+
import org.eclipse.rcptt.tesla.core.protocol.raw.ResponseStatus;
5760
import org.eclipse.rcptt.tesla.core.ui.Color;
5861
import org.eclipse.rcptt.tesla.core.ui.Selection;
5962
import org.eclipse.rcptt.tesla.core.ui.UiFactory;
@@ -65,6 +68,7 @@
6568
import org.eclipse.rcptt.tesla.internal.ui.SWTElementMapper;
6669
import org.eclipse.rcptt.tesla.internal.ui.player.ISWTModelMapperExtension;
6770
import org.eclipse.rcptt.tesla.internal.ui.player.ItemUIElement;
71+
import org.eclipse.rcptt.tesla.internal.ui.player.PlayerTextUtils;
6872
import org.eclipse.rcptt.tesla.internal.ui.player.PlayerWrapUtils;
6973
import org.eclipse.rcptt.tesla.internal.ui.player.SWTEvents;
7074
import org.eclipse.rcptt.tesla.internal.ui.player.SWTModelMapper;
@@ -249,6 +253,19 @@ public void run() {
249253
}
250254
return null;
251255
}
256+
257+
258+
@Override
259+
protected Response handleGetText(GetText command) {
260+
final SWTUIElement element = getMapper().get(command.getElement());
261+
final GetTextResponse response = factory.createGetTextResponse();
262+
if (element.unwrap() instanceof GridItem) {
263+
response.setText(element.getText());
264+
} else {
265+
return super.handleGetText(command);
266+
}
267+
return response;
268+
}
252269

253270
@Override
254271
protected Response handleDoubleClick(DoubleClick command) {

modules/nebula/plugins/org.eclipse.rcptt.tesla.nebula.impl/src/org/eclipse/rcptt/tesla/nebula/grid/GridScrollingHelper.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,13 @@ public static boolean scrollGridFor(SelectData data, SWTUIElement parent) {
4242
// TODO implement it for whole item selection case (e.g. select "Item #3")
4343

4444
if (parentWidget instanceof Grid grid) {
45-
GridItem item = (GridItem) NebulaViewers.searchGridItem(
45+
GridItem item;
46+
if (data.getIndexes().size() == 2) {
47+
item = grid.getItem(data.getIndexes().get(1));
48+
} else {
49+
item = (GridItem) NebulaViewers.searchGridItem(
4650
(NebulaUIElement) parent, data.getPath());
51+
}
4752
if (!showItemIfHidden(item)) {
4853
return false;
4954
}

runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/processors/SWTUIProcessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2628,7 +2628,7 @@ protected Response handleGetText(final GetText command) {
26282628
final SWTUIElement element = getMapper().get(command.getElement());
26292629
final GetTextResponse response = factory.createGetTextResponse();
26302630
if (element != null) {
2631-
response.setText(PlayerTextUtils.getText(element));
2631+
response.setText(element.getText());
26322632
}
26332633
else {
26342634
response.setStatus(ResponseStatus.FAILED);

0 commit comments

Comments
 (0)