use of org.eclipse.swt.events.FocusEvent in project knime-core by knime.
the class ConfigureMetaNodePortsPage method createTopPart.
private void createTopPart(final Composite parent) {
// top part
Composite composite = new Composite(parent, SWT.TOP);
GridLayout topLayout = new GridLayout();
topLayout.numColumns = 2;
composite.setLayout(topLayout);
GridData gridData = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
composite.setLayoutData(gridData);
// label
Label label = new Label(composite, SWT.NONE);
label.setText("Metanode Name:");
gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING, GridData.VERTICAL_ALIGN_CENTER, false, false);
label.setLayoutData(gridData);
// text field
m_name = new Text(composite, SWT.BORDER);
gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER);
m_name.setLayoutData(gridData);
m_name.addFocusListener(new FocusAdapter() {
@Override
public void focusLost(final FocusEvent e) {
updateStatus();
}
@Override
public void focusGained(final FocusEvent e) {
m_name.selectAll();
}
});
}
use of org.eclipse.swt.events.FocusEvent in project eclipse.platform.swt by eclipse.
the class Shape method addListeners.
void addListeners() {
addPaintListener(e -> {
GC gc = e.gc;
Display display = getDisplay();
Color c = display.getSystemColor(color);
gc.setBackground(c);
Rectangle rect = getClientArea();
int length = Math.min(rect.width, rect.height);
if (shape == CIRCLE) {
gc.fillOval(0, 0, length, length);
} else {
gc.fillRectangle(0, 0, length, length);
}
if (isFocusControl())
gc.drawFocus(rect.x, rect.y, rect.width, rect.height);
});
addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
redraw();
}
@Override
public void focusLost(FocusEvent e) {
redraw();
}
});
addMouseListener(MouseListener.mouseDownAdapter(e -> {
if (getClientArea().contains(e.x, e.y)) {
setFocus();
}
}));
addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
// key listener enables traversal out
}
});
addTraverseListener(e -> {
switch(e.detail) {
case SWT.TRAVERSE_TAB_NEXT:
case SWT.TRAVERSE_TAB_PREVIOUS:
e.doit = true;
break;
}
});
getAccessible().addAccessibleListener(new AccessibleAdapter() {
@Override
public void getName(AccessibleEvent e) {
MessageFormat formatter = new MessageFormat("");
// $NON_NLS$
formatter.applyPattern(bundle.getString("name"));
// $NON_NLS$
String colorName = bundle.getString("color" + color);
// $NON_NLS$
String shapeName = bundle.getString("shape" + shape);
// $NON_NLS$
e.result = formatter.format(new String[] { colorName, shapeName });
}
});
getAccessible().addAccessibleControlListener(new AccessibleControlAdapter() {
@Override
public void getRole(AccessibleControlEvent e) {
e.detail = ACC.ROLE_GRAPHIC;
}
@Override
public void getState(AccessibleControlEvent e) {
e.detail = ACC.STATE_FOCUSABLE;
if (isFocusControl())
e.detail |= ACC.STATE_FOCUSED;
}
});
}
use of org.eclipse.swt.events.FocusEvent in project eclipse.platform.swt by eclipse.
the class BarChart method addListeners.
void addListeners() {
addPaintListener(e -> {
GC gc = e.gc;
Rectangle rect = getClientArea();
Display display = getDisplay();
int count = data.size();
Point valueSize = gc.stringExtent(Integer.valueOf(valueMax).toString());
int leftX = rect.x + 2 * GAP + valueSize.x;
int bottomY = rect.y + rect.height - 2 * GAP - valueSize.y;
int unitWidth = (rect.width - 4 * GAP - valueSize.x - AXIS_WIDTH) / count - GAP;
int unitHeight = (rect.height - 3 * GAP - AXIS_WIDTH - 2 * valueSize.y) / ((valueMax - valueMin) / valueIncrement);
// draw the title
int titleWidth = gc.stringExtent(title).x;
int center = (Math.max(titleWidth, count * (unitWidth + GAP) + GAP) - titleWidth) / 2;
gc.setForeground(display.getSystemColor(SWT.COLOR_BLACK));
gc.drawString(title, leftX + AXIS_WIDTH + center, rect.y + GAP);
// draw the y axis and value labels
gc.setLineWidth(AXIS_WIDTH);
gc.drawLine(leftX, rect.y + GAP + valueSize.y, leftX, bottomY);
for (int i1 = valueMin; i1 <= valueMax; i1 += valueIncrement) {
int y = bottomY - i1 * unitHeight;
gc.drawLine(leftX, y, leftX - GAP, y);
gc.drawString(Integer.valueOf(i1).toString(), rect.x + GAP, y - valueSize.y);
}
// draw the x axis and item labels
gc.drawLine(leftX, bottomY, rect.x + rect.width - GAP, bottomY);
for (int i2 = 0; i2 < count; i2++) {
Object[] dataItem1 = data.get(i2);
String itemLabel = (String) dataItem1[0];
int x1 = leftX + AXIS_WIDTH + GAP + i2 * (unitWidth + GAP);
gc.drawString(itemLabel, x1, bottomY + GAP);
}
// draw the bars
gc.setBackground(display.getSystemColor(color));
for (int i3 = 0; i3 < count; i3++) {
Object[] dataItem2 = data.get(i3);
int itemValue1 = ((Integer) dataItem2[1]).intValue();
int x2 = leftX + AXIS_WIDTH + GAP + i3 * (unitWidth + GAP);
gc.fillRectangle(x2, bottomY - AXIS_WIDTH - itemValue1 * unitHeight, unitWidth, itemValue1 * unitHeight);
}
if (isFocusControl()) {
if (selectedItem == -1) {
// draw the focus rectangle around the whole bar chart
gc.drawFocus(rect.x, rect.y, rect.width, rect.height);
} else {
// draw the focus rectangle around the selected item
Object[] dataItem3 = data.get(selectedItem);
int itemValue2 = ((Integer) dataItem3[1]).intValue();
int x3 = leftX + AXIS_WIDTH + GAP + selectedItem * (unitWidth + GAP);
gc.drawFocus(x3, bottomY - itemValue2 * unitHeight - AXIS_WIDTH, unitWidth, itemValue2 * unitHeight + AXIS_WIDTH + GAP + valueSize.y);
}
}
});
addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
redraw();
}
@Override
public void focusLost(FocusEvent e) {
redraw();
}
});
addMouseListener(MouseListener.mouseDownAdapter(e -> {
if (getClientArea().contains(e.x, e.y)) {
setFocus();
int item = -1;
int count = data.size();
for (int i = 0; i < count; i++) {
if (itemBounds(i).contains(e.x, e.y)) {
item = i;
break;
}
}
if (item != selectedItem) {
selectedItem = item;
redraw();
getAccessible().setFocus(item);
getAccessible().selectionChanged();
}
}
}));
addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
boolean change = false;
switch(e.keyCode) {
case SWT.ARROW_DOWN:
case SWT.ARROW_RIGHT:
selectedItem++;
if (selectedItem >= data.size())
selectedItem = 0;
change = true;
break;
case SWT.ARROW_UP:
case SWT.ARROW_LEFT:
selectedItem--;
if (selectedItem <= -1)
selectedItem = data.size() - 1;
change = true;
break;
case SWT.HOME:
selectedItem = 0;
change = true;
break;
case SWT.END:
selectedItem = data.size() - 1;
change = true;
break;
}
if (change) {
redraw();
getAccessible().setFocus(selectedItem);
getAccessible().selectionChanged();
}
}
});
addTraverseListener(e -> {
switch(e.detail) {
case SWT.TRAVERSE_TAB_NEXT:
case SWT.TRAVERSE_TAB_PREVIOUS:
e.doit = true;
break;
}
});
getAccessible().addAccessibleListener(new AccessibleAdapter() {
@Override
public void getName(AccessibleEvent e) {
// $NON_NLS$
MessageFormat formatter = new MessageFormat("");
// $NON_NLS$
formatter.applyPattern(bundle.getString("name"));
int childID = e.childID;
if (childID == ACC.CHILDID_SELF) {
e.result = title;
} else {
Object[] item = data.get(childID);
e.result = formatter.format(item);
}
}
@Override
public void getDescription(AccessibleEvent e) {
int childID = e.childID;
if (childID != ACC.CHILDID_SELF) {
Object[] item = data.get(childID);
String value = item[1].toString();
// $NON_NLS$
String colorName = bundle.getString("color" + color);
// $NON_NLS$
MessageFormat formatter = new MessageFormat("");
// $NON_NLS$
formatter.applyPattern(bundle.getString("color_value"));
e.result = formatter.format(new String[] { colorName, value });
}
}
});
getAccessible().addAccessibleControlListener(new AccessibleControlAdapter() {
@Override
public void getRole(AccessibleControlEvent e) {
if (e.childID == ACC.CHILDID_SELF) {
e.detail = ACC.ROLE_LIST;
} else {
e.detail = ACC.ROLE_LISTITEM;
}
}
@Override
public void getChildCount(AccessibleControlEvent e) {
e.detail = data.size();
}
@Override
public void getChildren(AccessibleControlEvent e) {
int count = data.size();
Object[] children = new Object[count];
for (int i = 0; i < count; i++) {
children[i] = Integer.valueOf(i);
}
e.children = children;
}
@Override
public void getChildAtPoint(AccessibleControlEvent e) {
Point testPoint = toControl(e.x, e.y);
int childID = ACC.CHILDID_NONE;
if (getClientArea().contains(testPoint)) {
childID = ACC.CHILDID_SELF;
int count = data.size();
for (int i = 0; i < count; i++) {
if (itemBounds(i).contains(testPoint)) {
childID = i;
break;
}
}
}
e.childID = childID;
}
@Override
public void getLocation(AccessibleControlEvent e) {
Rectangle location = null;
Point pt = null;
int childID = e.childID;
if (childID == ACC.CHILDID_SELF) {
location = getClientArea();
pt = getParent().toDisplay(location.x, location.y);
} else {
location = itemBounds(childID);
pt = toDisplay(location.x, location.y);
}
e.x = pt.x;
e.y = pt.y;
e.width = location.width;
e.height = location.height;
}
@Override
public void getFocus(AccessibleControlEvent e) {
int childID = ACC.CHILDID_NONE;
if (isFocusControl()) {
if (selectedItem == -1) {
childID = ACC.CHILDID_SELF;
} else {
childID = selectedItem;
}
}
e.childID = childID;
}
@Override
public void getSelection(AccessibleControlEvent e) {
e.childID = (selectedItem == -1) ? ACC.CHILDID_NONE : selectedItem;
}
@Override
public void getValue(AccessibleControlEvent e) {
int childID = e.childID;
if (childID != ACC.CHILDID_SELF) {
Object[] dataItem = data.get(childID);
e.result = ((Integer) dataItem[1]).toString();
}
}
@Override
public void getState(AccessibleControlEvent e) {
int childID = e.childID;
e.detail = ACC.STATE_FOCUSABLE;
if (isFocusControl())
e.detail |= ACC.STATE_FOCUSED;
if (childID != ACC.CHILDID_SELF) {
e.detail |= ACC.STATE_SELECTABLE;
if (childID == selectedItem)
e.detail |= ACC.STATE_SELECTED;
}
}
});
}
use of org.eclipse.swt.events.FocusEvent in project eclipse.platform.swt by eclipse.
the class Test_org_eclipse_swt_widgets_Control method test_addFocusListenerLorg_eclipse_swt_events_FocusListener.
@Test
public void test_addFocusListenerLorg_eclipse_swt_events_FocusListener() {
FocusListener listener = new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
eventOccurred = true;
}
@Override
public void focusLost(FocusEvent e) {
eventOccurred = true;
}
};
control.addFocusListener(listener);
eventOccurred = false;
control.notifyListeners(SWT.FocusIn, new Event());
assertTrue(eventOccurred);
eventOccurred = false;
control.notifyListeners(SWT.FocusOut, new Event());
assertTrue(eventOccurred);
control.removeFocusListener(listener);
}
use of org.eclipse.swt.events.FocusEvent in project yamcs-studio by yamcs.
the class MultipleSelectionCombo method createPopup.
/**
* Create shell that simulates drop-down
*/
private void createPopup() {
popup = new Shell(getShell(), SWT.NO_TRIM | SWT.ON_TOP);
popup.setLayout(new FillLayout());
list = new org.eclipse.swt.widgets.List(popup, SWT.MULTI | SWT.V_SCROLL);
list.setToolTipText(tool_tip);
// Position popup under the text box
Rectangle bounds = text.getBounds();
bounds.y += bounds.height;
// As high as necessary for items
bounds.height = 5 + 2 * list.getBorderWidth() + list.getItemHeight() * items.size();
// ..with limitation
bounds.height = Math.min(bounds.height, display.getBounds().height / 2);
// Map to screen coordinates
bounds = display.map(text, null, bounds);
popup.setBounds(bounds);
popup.open();
// Update text from changed list selection
list.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
updateSelectionFromList();
updateText();
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
updateSelectionFromList();
updateText();
hidePopup();
}
});
String[] stringItems = new String[items.size()];
for (int i = 0; i < items.size(); i++) {
stringItems[i] = stringRepresention(items.get(i));
}
list.setItems(stringItems);
int[] intSelectionIndex = new int[selectionIndex.size()];
for (int i = 0; i < intSelectionIndex.length; i++) {
intSelectionIndex[i] = selectionIndex.get(i);
}
list.setSelection(intSelectionIndex);
list.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
if (e.keyCode == SWT.CR) {
hidePopup();
}
}
});
// Hide popup when loosing focus
list.addFocusListener(new FocusAdapter() {
@Override
public void focusLost(final FocusEvent e) {
// This field is an unsigned integer and should be AND'ed with
// 0xFFFFFFFFL so that it can be treated as a signed long.
lost_focus = e.time & 0xFFFFFFFFL;
hidePopup();
}
});
list.setFocus();
}
Aggregations