blob: b24eebd1db3eefc2f2edc89c1d44ceb0bd4a3f5c [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012 Laurent CARON.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Laurent CARON (laurent.caron at gmail dot com) - initial API and implementation
*******************************************************************************/
package org.mihalis.opal.roundedToolbar;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.events.ControlListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
/**
* A simple snippet for the Rounded Toolbar Widget
*/
public class RoundedToolbarSnippet {
private static Color grey1;
private static Color grey2;
private static Image iconBubble1b;
private static Image iconBubble1w;
private static Image iconBubble2b;
private static Image iconBubble2w;
private static Image iconBubble3b;
private static Image iconBubble3w;
private static Image emailb;
private static Image emailw;
/**
* @param args
*/
public static void main(final String[] args) {
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("RoundedToolbar Snippet");
final GridLayout gridLayout = new GridLayout();
gridLayout.horizontalSpacing = 20;
shell.setLayout(gridLayout);
grey1 = new Color(display, 211, 211, 211);
grey2 = new Color(display, 255, 250, 250);
iconBubble1b = new Image(display, RoundedToolbarSnippet.class.getClassLoader().getResourceAsStream("org/mihalis/opal/roundedToolbar/icons/bubble1_b.png"));
iconBubble1w = new Image(display, RoundedToolbarSnippet.class.getClassLoader().getResourceAsStream("org/mihalis/opal/roundedToolbar/icons/bubble1_w.png"));
iconBubble2b = new Image(display, RoundedToolbarSnippet.class.getClassLoader().getResourceAsStream("org/mihalis/opal/roundedToolbar/icons/bubble2_b.png"));
iconBubble2w = new Image(display, RoundedToolbarSnippet.class.getClassLoader().getResourceAsStream("org/mihalis/opal/roundedToolbar/icons/bubble2_w.png"));
iconBubble3b = new Image(display, RoundedToolbarSnippet.class.getClassLoader().getResourceAsStream("org/mihalis/opal/roundedToolbar/icons/bubble3_b.png"));
iconBubble3w = new Image(display, RoundedToolbarSnippet.class.getClassLoader().getResourceAsStream("org/mihalis/opal/roundedToolbar/icons/bubble3_w.png"));
emailb = new Image(display, RoundedToolbarSnippet.class.getClassLoader().getResourceAsStream("org/mihalis/opal/roundedToolbar/icons/email_b.png"));
emailw = new Image(display, RoundedToolbarSnippet.class.getClassLoader().getResourceAsStream("org/mihalis/opal/roundedToolbar/icons/email_w.png"));
createFirstToolbar(shell);
createSecondToolbar(shell, false);
final RoundedToolbar toolbar = createSecondToolbar(shell, true);
final GridData gd = new GridData(SWT.FILL, SWT.FILL, false, false);
gd.widthHint = SWT.DEFAULT;
gd.heightHint = 100;
toolbar.setLayoutData(gd);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
grey1.dispose();
grey2.dispose();
iconBubble1b.dispose();
iconBubble1w.dispose();
iconBubble2b.dispose();
iconBubble2w.dispose();
iconBubble3b.dispose();
iconBubble3w.dispose();
emailb.dispose();
emailw.dispose();
display.dispose();
}
private static void createFirstToolbar(final Shell shell) {
final RoundedToolbar roundedToolBar = new RoundedToolbar(shell, SWT.NONE);
roundedToolBar.setMultiselection(true);
roundedToolBar.setBackground(grey1);
roundedToolBar.setCornerRadius(6);
roundedToolBar.addControlListener(new ControlListener() {
@Override
public void controlResized(final ControlEvent e) {
System.out.println(roundedToolBar.getSize());
}
@Override
public void controlMoved(final ControlEvent e) {
// TODO Auto-generated method stub
}
});
final RoundedToolItem item1 = new RoundedToolItem(roundedToolBar);
item1.setSelection(true);
item1.setTooltipText("Multiple ballons");
item1.setWidth(40);
item1.setSelectionImage(iconBubble3w);
item1.setImage(iconBubble3b);
final RoundedToolItem item2 = new RoundedToolItem(roundedToolBar);
item2.setTooltipText("Simple item");
item2.setSelectionImage(iconBubble1w);
item2.setImage(iconBubble1b);
item2.setWidth(40);
final RoundedToolItem item3 = new RoundedToolItem(roundedToolBar);
item3.setTooltipText("Lot of lines\r\n\r\nThis item has a line-break");
item3.setSelectionImage(iconBubble2w);
item3.setImage(iconBubble2b);
item3.setWidth(40);
}
private static RoundedToolbar createSecondToolbar(final Shell shell, final boolean verticalAlignment) {
final RoundedToolbar roundedToolBar2 = new RoundedToolbar(shell, SWT.NONE);
roundedToolBar2.setCornerRadius(8);
roundedToolBar2.setBackground(grey1);
final RoundedToolItem mailItem = new RoundedToolItem(roundedToolBar2);
mailItem.setSelectionImage(emailw);
mailItem.setImage(emailb);
mailItem.setWidth(32);
mailItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(final SelectionEvent e) {
System.out.println("Bar2/Button 1");
}
});
if (verticalAlignment) {
mailItem.setVerticalAlignment(SWT.TOP);
}
final RoundedToolItem mailItemWithText = new RoundedToolItem(roundedToolBar2);
mailItemWithText.setTextColorSelected(grey2);
mailItemWithText.setText("Mails");
mailItemWithText.setSelectionImage(emailw);
mailItemWithText.setImage(emailb);
mailItemWithText.setWidth(65);
mailItemWithText.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(final SelectionEvent e) {
System.out.println("Bar2/Button 2");
}
});
if (verticalAlignment) {
mailItemWithText.setVerticalAlignment(SWT.CENTER);
}
final RoundedToolItem itemJustText = new RoundedToolItem(roundedToolBar2);
itemJustText.setTextColorSelected(grey2);
itemJustText.setText("Just text");
itemJustText.setWidth(100);
itemJustText.setAlignment(SWT.RIGHT);
itemJustText.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(final SelectionEvent e) {
System.out.println("Bar2/Button 3");
}
});
if (verticalAlignment) {
itemJustText.setVerticalAlignment(SWT.BOTTOM);
}
return roundedToolBar2;
}
}