use of org.eclipse.swt.widgets.ScrollBar in project tdi-studio-se by Talend.
the class UIManager method convertPointToReferenceOrigin.
public Point convertPointToReferenceOrigin(final Composite referenceComposite, Point point, Composite child) {
Point returnedPoint = new Point(point.x, point.y);
while (child != referenceComposite) {
Rectangle bounds = child.getBounds();
child = child.getParent();
ScrollBar vScrollBar = child.getVerticalBar();
if (vScrollBar != null) {
returnedPoint.y += vScrollBar.getSelection();
}
returnedPoint.x += bounds.x;
returnedPoint.y += bounds.y;
}
return returnedPoint;
}
use of org.eclipse.swt.widgets.ScrollBar in project tdi-studio-se by Talend.
the class MetadataTableEditorViewExt method addHorizontalBarListener.
private void addHorizontalBarListener() {
final ScrollBar horizontalBar = getTable().getHorizontalBar();
horizontalBar.addSelectionListener(new SelectionAdapter() {
/*
* (non-Java)
*
* @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
@Override
public void widgetSelected(SelectionEvent e) {
// if (e.detail == SWT.DRAG) {
int shift = horizontalBar.getSelection();
attachLabelPosition(shift);
// }
}
});
}
use of org.eclipse.swt.widgets.ScrollBar in project tdi-studio-se by Talend.
the class DefaultDropTargetListener method autoScroll.
private void autoScroll(DropTargetEvent event) {
Composite currentComposite = null;
Object source = event.getSource();
if (source instanceof DropTarget) {
Control control = ((DropTarget) source).getControl();
if (control instanceof Composite) {
currentComposite = (Composite) control;
}
}
if (currentComposite == null) {
return;
}
ScrolledComposite parentScrolledComposite = getParentScrolledComposite(currentComposite);
if (parentScrolledComposite == null) {
return;
}
ScrollBar vBar = parentScrolledComposite.getVerticalBar();
Control content = parentScrolledComposite.getContent();
if (content != null) {
Point location = content.getLocation();
int vSelection = vBar.getSelection();
int increment = 0;
int thumb = vBar.getThumb();
if (lastCursorPosition == null || lastCursorPosition.y == event.y) {
long currentTimeMillis = System.currentTimeMillis();
long time = currentTimeMillis - lastDragTime;
if (lastDragTime != 0 && time > 100) {
Point pointToScrollComposite = parentScrolledComposite.toControl(event.x, event.y);
// scroll up
if (pointToScrollComposite.y < 40) {
increment = -20;
} else // scroll down
if (thumb - pointToScrollComposite.y < 40) {
increment = 20;
} else {
return;
}
} else {
return;
}
} else {
increment = event.y - lastCursorPosition.y;
if (increment > 0) {
increment = increment + 3;
} else {
increment = increment - 3;
}
}
if (vSelection >= 0 && vSelection + increment > 0 && vSelection + increment < vBar.getMaximum()) {
vBar.setSelection(vSelection + increment);
}
content.setLocation(location.x, -vSelection);
mapperManager.getUiManager().refreshBackground(true, false);
lastDragTime = System.currentTimeMillis();
}
// Event e = new Event();
// e.data = event.data;
// e.x = event.x;
// e.y = event.y;
// e.detail = event.detail;
// e.item = event.item;
// e.count = event.y > lastCursorPosition.y ? 1 : 0;
// e.display = event.display;
// e.widget = event.widget;
// if (parentScrolledComposite != null) {
// parentScrolledComposite.notifyListeners(SWT.MouseWheel, e);
// }
}
use of org.eclipse.swt.widgets.ScrollBar in project linuxtools by eclipse.
the class AbstractSTViewer method saveState.
/**
* Used to save the state of the viewer before its disposal
*/
public void saveState() {
if (viewerSettings == null) {
viewerSettings = getDialogSettings().getSection(STDataViewersSettings.TAG_SECTION_VIEWER_STATE);
}
if (viewerSettings == null) {
viewerSettings = getDialogSettings().addNewSection(STDataViewersSettings.TAG_SECTION_VIEWER_STATE);
}
// save column order
int[] columnOrder = getColumnOrder();
String[] columnOrderStrings = new String[columnOrder.length];
for (int i = 0; i < columnOrder.length; i++) {
columnOrderStrings[i] = columnOrder[i] + "";
}
viewerSettings.put(STDataViewersSettings.TAG_VIEWER_STATE_COLUMN_ORDER, columnOrderStrings);
// save hide show manager
if (getHideShowManager() != null) {
getHideShowManager().saveState(viewerSettings);
}
// save sort
if (getTableSorter() != null) {
getTableSorter().saveState(viewerSettings);
}
// save vertical position
Scrollable scrollable = (Scrollable) viewer.getControl();
ScrollBar bar = scrollable.getVerticalBar();
int position = (bar != null) ? bar.getSelection() : 0;
viewerSettings.put(STDataViewersSettings.TAG_VIEWER_STATE_VERTICAL_POSITION, position);
// save horizontal position
bar = scrollable.getHorizontalBar();
position = (bar != null) ? bar.getSelection() : 0;
viewerSettings.put(STDataViewersSettings.TAG_VIEWER_STATE_HORIZONTAL_POSITION, position);
}
use of org.eclipse.swt.widgets.ScrollBar in project eclipse.platform.swt by eclipse.
the class ImageAnalyzer method createWidgets.
void createWidgets() {
// Add the widgets to the shell in a grid layout.
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.numColumns = 2;
shell.setLayout(layout);
// Add a composite to contain some control widgets across the top.
Composite controls = new Composite(shell, SWT.NONE);
RowLayout rowLayout = new RowLayout();
rowLayout.marginTop = 5;
rowLayout.marginBottom = 5;
rowLayout.spacing = 8;
controls.setLayout(rowLayout);
GridData gridData = new GridData();
gridData.horizontalSpan = 2;
controls.setLayoutData(gridData);
// Combo to change the background.
Group group = new Group(controls, SWT.NONE);
group.setLayout(new RowLayout());
group.setText(bundle.getString("Background"));
backgroundCombo = new Combo(group, SWT.DROP_DOWN | SWT.READ_ONLY);
backgroundCombo.setItems(bundle.getString("None"), bundle.getString("White"), bundle.getString("Black"), bundle.getString("Red"), bundle.getString("Green"), bundle.getString("Blue"));
backgroundCombo.select(backgroundCombo.indexOf(bundle.getString("White")));
backgroundCombo.addSelectionListener(widgetSelectedAdapter(event -> changeBackground()));
// Combo to change the compression ratio.
group = new Group(controls, SWT.NONE);
group.setLayout(new GridLayout(3, true));
group.setText(bundle.getString("Save_group"));
imageTypeCombo = new Combo(group, SWT.DROP_DOWN | SWT.READ_ONLY);
String[] types = { "JPEG", "PNG", "GIF", "ICO", "TIFF", "BMP" };
for (String type : types) {
imageTypeCombo.add(type);
}
imageTypeCombo.select(imageTypeCombo.indexOf("JPEG"));
imageTypeCombo.addSelectionListener(widgetSelectedAdapter(event -> {
int index = imageTypeCombo.getSelectionIndex();
switch(index) {
case 0:
compressionCombo.setEnabled(true);
compressionRatioLabel.setEnabled(true);
if (compressionCombo.getItemCount() == 100)
break;
compressionCombo.removeAll();
for (int i = 0; i < 100; i++) {
compressionCombo.add(String.valueOf(i + 1));
}
compressionCombo.select(compressionCombo.indexOf("75"));
break;
case 1:
compressionCombo.setEnabled(true);
compressionRatioLabel.setEnabled(true);
if (compressionCombo.getItemCount() == 10)
break;
compressionCombo.removeAll();
for (int i = 0; i < 4; i++) {
compressionCombo.add(String.valueOf(i));
}
compressionCombo.select(0);
break;
case 2:
case 3:
case 4:
case 5:
compressionCombo.setEnabled(false);
compressionRatioLabel.setEnabled(false);
break;
}
}));
imageTypeCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
compressionRatioLabel = new Label(group, SWT.NONE);
compressionRatioLabel.setText(bundle.getString("Compression"));
compressionRatioLabel.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false));
compressionCombo = new Combo(group, SWT.DROP_DOWN | SWT.READ_ONLY);
for (int i = 0; i < 100; i++) {
compressionCombo.add(String.valueOf(i + 1));
}
compressionCombo.select(compressionCombo.indexOf("75"));
compressionCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
// Combo to change the x scale.
String[] values = { "0.1", "0.2", "0.3", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9", "1", "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
group = new Group(controls, SWT.NONE);
group.setLayout(new RowLayout());
group.setText(bundle.getString("X_scale"));
scaleXCombo = new Combo(group, SWT.DROP_DOWN);
for (String value : values) {
scaleXCombo.add(value);
}
scaleXCombo.select(scaleXCombo.indexOf("1"));
scaleXCombo.addSelectionListener(widgetSelectedAdapter(event -> scaleX()));
// Combo to change the y scale.
group = new Group(controls, SWT.NONE);
group.setLayout(new RowLayout());
group.setText(bundle.getString("Y_scale"));
scaleYCombo = new Combo(group, SWT.DROP_DOWN);
for (String value : values) {
scaleYCombo.add(value);
}
scaleYCombo.select(scaleYCombo.indexOf("1"));
scaleYCombo.addSelectionListener(widgetSelectedAdapter(event -> scaleY()));
// Combo to change the alpha value.
group = new Group(controls, SWT.NONE);
group.setLayout(new RowLayout());
group.setText(bundle.getString("Alpha_K"));
alphaCombo = new Combo(group, SWT.DROP_DOWN | SWT.READ_ONLY);
for (int i = 0; i <= 255; i += 5) {
alphaCombo.add(String.valueOf(i));
}
alphaCombo.select(alphaCombo.indexOf("255"));
alphaCombo.addSelectionListener(widgetSelectedAdapter(event -> alpha()));
// Check box to request incremental display.
group = new Group(controls, SWT.NONE);
group.setLayout(new RowLayout());
group.setText(bundle.getString("Display"));
incrementalCheck = new Button(group, SWT.CHECK);
incrementalCheck.setText(bundle.getString("Incremental"));
incrementalCheck.setSelection(incremental);
incrementalCheck.addSelectionListener(widgetSelectedAdapter(event -> incremental = ((Button) event.widget).getSelection()));
// Check box to request transparent display.
transparentCheck = new Button(group, SWT.CHECK);
transparentCheck.setText(bundle.getString("Transparent"));
transparentCheck.setSelection(transparent);
transparentCheck.addSelectionListener(widgetSelectedAdapter(event -> {
transparent = ((Button) event.widget).getSelection();
if (image != null) {
imageCanvas.redraw();
}
}));
// Check box to request mask display.
maskCheck = new Button(group, SWT.CHECK);
maskCheck.setText(bundle.getString("Mask"));
maskCheck.setSelection(showMask);
maskCheck.addSelectionListener(widgetSelectedAdapter(event -> {
showMask = ((Button) event.widget).getSelection();
if (image != null) {
imageCanvas.redraw();
}
}));
// Check box to request background display.
backgroundCheck = new Button(group, SWT.CHECK);
backgroundCheck.setText(bundle.getString("Background"));
backgroundCheck.setSelection(showBackground);
backgroundCheck.addSelectionListener(widgetSelectedAdapter(event -> showBackground = ((Button) event.widget).getSelection()));
// Group the animation buttons.
group = new Group(controls, SWT.NONE);
group.setLayout(new RowLayout());
group.setText(bundle.getString("Animation"));
// Push button to display the previous image in a multi-image file.
previousButton = new Button(group, SWT.PUSH);
previousButton.setText(bundle.getString("Previous"));
previousButton.setEnabled(false);
previousButton.addSelectionListener(widgetSelectedAdapter(event -> previous()));
// Push button to display the next image in a multi-image file.
nextButton = new Button(group, SWT.PUSH);
nextButton.setText(bundle.getString("Next"));
nextButton.setEnabled(false);
nextButton.addSelectionListener(widgetSelectedAdapter(event -> next()));
// Push button to toggle animation of a multi-image file.
animateButton = new Button(group, SWT.PUSH);
animateButton.setText(bundle.getString("Animate"));
animateButton.setEnabled(false);
animateButton.addSelectionListener(widgetSelectedAdapter(event -> animate()));
// Label to show the image file type.
typeLabel = new Label(shell, SWT.NONE);
typeLabel.setText(bundle.getString("Type_initial"));
typeLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
// Canvas to show the image.
imageCanvas = new Canvas(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.NO_REDRAW_RESIZE | SWT.NO_BACKGROUND);
imageCanvas.setBackground(whiteColor);
imageCanvas.setCursor(crossCursor);
gridData = new GridData();
gridData.verticalSpan = 15;
gridData.horizontalAlignment = GridData.FILL;
gridData.verticalAlignment = GridData.FILL;
gridData.grabExcessHorizontalSpace = true;
gridData.grabExcessVerticalSpace = true;
imageCanvas.setLayoutData(gridData);
imageCanvas.addPaintListener(event -> {
if (image == null) {
Rectangle bounds = imageCanvas.getBounds();
event.gc.fillRectangle(0, 0, bounds.width, bounds.height);
} else {
paintImage(event);
}
});
imageCanvas.addMouseMoveListener(event -> {
if (image != null) {
showColorAt(event.x, event.y);
}
});
// Set up the image canvas scroll bars.
ScrollBar horizontal = imageCanvas.getHorizontalBar();
horizontal.setVisible(true);
horizontal.setMinimum(0);
horizontal.setEnabled(false);
horizontal.addSelectionListener(widgetSelectedAdapter(event -> scrollHorizontally((ScrollBar) event.widget)));
ScrollBar vertical = imageCanvas.getVerticalBar();
vertical.setVisible(true);
vertical.setMinimum(0);
vertical.setEnabled(false);
vertical.addSelectionListener(widgetSelectedAdapter(event -> scrollVertically((ScrollBar) event.widget)));
// Label to show the image size.
sizeLabel = new Label(shell, SWT.NONE);
sizeLabel.setText(bundle.getString("Size_initial"));
sizeLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
// Label to show the image depth.
depthLabel = new Label(shell, SWT.NONE);
depthLabel.setText(bundle.getString("Depth_initial"));
depthLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
// Label to show the transparent pixel.
transparentPixelLabel = new Label(shell, SWT.NONE);
transparentPixelLabel.setText(bundle.getString("Transparent_pixel_initial"));
transparentPixelLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
// Label to show the time to load.
timeToLoadLabel = new Label(shell, SWT.NONE);
timeToLoadLabel.setText(bundle.getString("Time_to_load_initial"));
timeToLoadLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
// Separate the animation fields from the rest of the fields.
Label separator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
separator.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
// Label to show the logical screen size for animation.
screenSizeLabel = new Label(shell, SWT.NONE);
screenSizeLabel.setText(bundle.getString("Animation_size_initial"));
screenSizeLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
// Label to show the background pixel.
backgroundPixelLabel = new Label(shell, SWT.NONE);
backgroundPixelLabel.setText(bundle.getString("Background_pixel_initial"));
backgroundPixelLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
// Label to show the image location (x, y).
locationLabel = new Label(shell, SWT.NONE);
locationLabel.setText(bundle.getString("Image_location_initial"));
locationLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
// Label to show the image disposal method.
disposalMethodLabel = new Label(shell, SWT.NONE);
disposalMethodLabel.setText(bundle.getString("Disposal_initial"));
disposalMethodLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
// Label to show the image delay time.
delayTimeLabel = new Label(shell, SWT.NONE);
delayTimeLabel.setText(bundle.getString("Delay_initial"));
delayTimeLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
// Label to show the background pixel.
repeatCountLabel = new Label(shell, SWT.NONE);
repeatCountLabel.setText(bundle.getString("Repeats_initial"));
repeatCountLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
// Separate the animation fields from the palette.
separator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
separator.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
// Label to show if the image has a direct or indexed palette.
paletteLabel = new Label(shell, SWT.NONE);
paletteLabel.setText(bundle.getString("Palette_initial"));
paletteLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
// Canvas to show the image's palette.
paletteCanvas = new Canvas(shell, SWT.BORDER | SWT.V_SCROLL | SWT.NO_REDRAW_RESIZE);
paletteCanvas.setFont(fixedWidthFont);
paletteCanvas.getVerticalBar().setVisible(true);
gridData = new GridData();
gridData.horizontalAlignment = GridData.FILL;
gridData.verticalAlignment = GridData.FILL;
GC gc = new GC(paletteLabel);
paletteWidth = gc.stringExtent(bundle.getString("Max_length_string")).x;
gc.dispose();
gridData.widthHint = paletteWidth;
// show at least 16 colors
gridData.heightHint = 16 * 11;
paletteCanvas.setLayoutData(gridData);
paletteCanvas.addPaintListener(event -> {
if (image != null)
paintPalette(event);
});
// Set up the palette canvas scroll bar.
vertical = paletteCanvas.getVerticalBar();
vertical.setVisible(true);
vertical.setMinimum(0);
vertical.setIncrement(10);
vertical.setEnabled(false);
vertical.addSelectionListener(widgetSelectedAdapter(event -> scrollPalette((ScrollBar) event.widget)));
// Sash to see more of image or image data.
sash = new Sash(shell, SWT.HORIZONTAL);
gridData = new GridData();
gridData.horizontalSpan = 2;
gridData.horizontalAlignment = GridData.FILL;
sash.setLayoutData(gridData);
sash.addSelectionListener(widgetSelectedAdapter(event -> {
if (event.detail != SWT.DRAG) {
((GridData) paletteCanvas.getLayoutData()).heightHint = SWT.DEFAULT;
Rectangle paletteCanvasBounds = paletteCanvas.getBounds();
int minY = paletteCanvasBounds.y + 20;
Rectangle dataLabelBounds = dataLabel.getBounds();
int maxY = statusLabel.getBounds().y - dataLabelBounds.height - 20;
if (event.y > minY && event.y < maxY) {
Rectangle oldSash = sash.getBounds();
sash.setBounds(event.x, event.y, event.width, event.height);
int diff = event.y - oldSash.y;
Rectangle bounds = imageCanvas.getBounds();
imageCanvas.setBounds(bounds.x, bounds.y, bounds.width, bounds.height + diff);
bounds = paletteCanvasBounds;
paletteCanvas.setBounds(bounds.x, bounds.y, bounds.width, bounds.height + diff);
bounds = dataLabelBounds;
dataLabel.setBounds(bounds.x, bounds.y + diff, bounds.width, bounds.height);
bounds = dataText.getBounds();
dataText.setBounds(bounds.x, bounds.y + diff, bounds.width, bounds.height - diff);
// shell.layout(true);
}
}
}));
// Label to show data-specific fields.
dataLabel = new Label(shell, SWT.NONE);
dataLabel.setText(bundle.getString("Pixel_data_initial"));
gridData = new GridData();
gridData.horizontalSpan = 2;
gridData.horizontalAlignment = GridData.FILL;
dataLabel.setLayoutData(gridData);
// Text to show a dump of the data.
dataText = new StyledText(shell, SWT.BORDER | SWT.MULTI | SWT.READ_ONLY | SWT.V_SCROLL | SWT.H_SCROLL);
dataText.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
dataText.setFont(fixedWidthFont);
gridData = new GridData();
gridData.horizontalSpan = 2;
gridData.horizontalAlignment = GridData.FILL;
gridData.verticalAlignment = GridData.FILL;
gridData.heightHint = 128;
gridData.grabExcessVerticalSpace = true;
dataText.setLayoutData(gridData);
dataText.addMouseListener(MouseListener.mouseDownAdapter(event -> {
if (image != null && event.button == 1) {
showColorForData();
}
}));
dataText.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent event) {
if (image != null) {
showColorForData();
}
}
});
// Label to show status and cursor location in image.
statusLabel = new Label(shell, SWT.NONE);
statusLabel.setText("");
gridData = new GridData();
gridData.horizontalSpan = 2;
gridData.horizontalAlignment = GridData.FILL;
statusLabel.setLayoutData(gridData);
}
Aggregations