Home » Newcomers » Newcomers » Implement SWT Code to RCP(Written SWT Code into RCP View)
Implement SWT Code to RCP [message #778381] |
Thu, 12 January 2012 16:51 |
Simon Woelki Messages: 2 Registered: January 2012 |
Junior Member |
|
|
Hi guys,
I need an advice:
I made some Code in SWT :
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.ScrollBar;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import java.io.File;
public class GUI
{
public GUI()
{
final Display display = new Display();
display.getBounds();
final Shell shell = new Shell(display);
shell.setText("Klicken zum Verschieben");
Monitor primary = display.getPrimaryMonitor();
Rectangle bounds = primary.getBounds();
Rectangle rectangle = shell.getBounds();
int x = bounds.x + (bounds.width - rectangle.width) / 2;
int y = bounds.y + (bounds.height - rectangle.height) / 2;
shell.setLayout(new FillLayout(SWT.HORIZONTAL));
shell.setFullScreen(true);
//shell.setSize(1024, 768);
Color myColor = new Color(display, 255,255,255);
//-------------------------------------------->Menu<-------------------------------------------------------------------
Menu menu = new Menu(shell, SWT.BAR);
final MenuItem Datei = new MenuItem(menu, SWT.CASCADE);
Datei.setText("Datei");
Datei.setAccelerator('D');
final Menu DateiMenu = new Menu(shell, SWT.DROP_DOWN);
Datei.setMenu(DateiMenu);
final MenuItem Oeffnen = new MenuItem(DateiMenu, SWT.PUSH);
Oeffnen.setText("&Öffnen\tSTRG+O");
Oeffnen.setAccelerator(SWT.CTRL + 'O');
final MenuItem seperator = new MenuItem (DateiMenu, SWT.SEPARATOR);
final MenuItem exit = new MenuItem (DateiMenu, SWT.PUSH);
exit.setText("Exit");
//Exit
exit.addSelectionListener
(
new SelectionAdapter()
{
public void widgetSelected(SelectionEvent e)
{
MessageBox exitbox = new MessageBox(shell, SWT.ICON_QUESTION | SWT.YES | SWT.NO);
exitbox.setMessage("Wollen Sie wirklich schließen?");
exitbox.setText("Schließen");
int response = exitbox.open();
if (response == SWT.YES)
{
System.exit(0);
}
}
}
);
//----------------------------------------->Unterteilung in rechte und linke Seite<--------------------------------
final SashForm sashForm = new SashForm(shell, SWT.HORIZONTAL);
sashForm.setVisible(true);
//------------------------------------------>linke Seite<------------------------------------------------------------------
final Composite linkeSpalte = new Composite(sashForm, SWT.V_SCROLL);
linkeSpalte.setBackground(new Color(display, 233, 233, 233));
GridLayout grid = new GridLayout();
grid.numColumns = 1;
linkeSpalte.setLayout(grid);
//------------------------------------------>Image Laden und prüfen<-----------------------------------------------
Image orginalImage = null;
final FileDialog FD = new FileDialog(shell, SWT.MULTI);
//FD.setFilterPath("C:\\Users\\Admin\\workspace\\");
String[] filterExt = {"*.jpg", "*.png", "*.jpeg", "*.bmp", "*.*"};
FD.setFilterExtensions(filterExt);
String hans = FD.open();
if (hans != null)
{
StringBuffer sb = new StringBuffer();
String[] bilder = FD.getFileNames();
for (int i = 0; i < bilder.length; i++)
{
sb.append(FD.getFilterPath());
if(sb.charAt(sb.length() - 1) != File.separatorChar)
{
sb.append(File.separatorChar);
}
sb.append(bilder[i]);
String string = new String(sb);
orginalImage = new Image(display, string);
Label label = new Label(linkeSpalte, SWT.RESIZE);
label.setImage(orginalImage);
}
}
if (hans == null)
{
Label label = new Label(linkeSpalte, SWT.RESIZE);
label.setText("Falsches Format oder keine Datei(en) ausgewählt.");
}
linkeSpalte.addListener(SWT.Resize, new Listener()
{
public void handleEvent(Event e)
{
}
}
);
//------------------------------------------>rechte Spalte unterteilen<--------------------------------------------
SashForm rechteSpalte = new SashForm(sashForm, SWT.VERTICAL);
rechteSpalte.setVisible(true);
//------------------------------------------>rechts oben<------------------------------------------------------------------
final Composite rechtsOben = new Composite(rechteSpalte, SWT.NONE);
//Layout
RowLayout rowLayout = new RowLayout();
rowLayout.fill = true;
rowLayout.justify= true;
rowLayout.type = SWT.VERTICAL;
rechtsOben.setLayout(rowLayout);
rechtsOben.setBackground(myColor);
//Widgets
Button eins = new Button(rechtsOben, SWT.PUSH);
eins.setText("eins");
Button zwei = new Button(rechtsOben, SWT.PUSH);
zwei.setText("zwei");
Button drei = new Button(rechtsOben, SWT.PUSH);
drei.setText("drei");
Button vier = new Button(rechtsOben, SWT.PUSH);
vier.setText("vier");
Button fünf = new Button(rechtsOben, SWT.PUSH);
fünf.setText("fünf");
Button sechs = new Button(rechtsOben, SWT.PUSH);
sechs.setText("sechs");
Button sieben = new Button(rechtsOben, SWT.PUSH);
sieben.setText("sieben");
Button acht = new Button(rechtsOben, SWT.PUSH);
acht.setText("acht");
Button neun = new Button(rechtsOben, SWT.PUSH);
neun.setText("neun");
Button zehn = new Button(rechtsOben, SWT.PUSH);
zehn.setText("zehn");
//------------------------------------------>rechts unten<----------------------------------------------------------------------
Composite rechtsUnten = new Composite(rechteSpalte, SWT.NONE);
rechtsUnten.setLayout(new FormLayout());
rechtsUnten.setBackground(myColor);
FormData rULayout = new FormData();
rULayout.top = new FormAttachment (40, 10);
rULayout.left = new FormAttachment(30, 10);
final Combo combo = new Combo(rechtsUnten, SWT.LEFT);
combo.setItems(new String[] {"DatenbankEintrag 1", "DatenbankEintrag 2", "DatenbankEintrag 3"});
combo.setLayoutData(rULayout);
//------------------------------------------>Fenster erzeugen<-------------------------------------------------------------------
shell.setMenuBar(menu);
shell.setLocation(x, y);
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
{
display.sleep();
}
}
display.dispose();
}
public static void main(String[] args)
{
new GUI();
}
}
When i copy paste the code to
public void createPartControl(Composite parent) {
//copy it in here!
}
i get this error:
org.eclipse.swt.SWTException: Invalid thread access
at org.eclipse.swt.SWT.error(SWT.java:4083)
at org.eclipse.swt.SWT.error(SWT.java:3998)
etc,,,
Ok i expected an error. But where to put my SWT Code? Other snippets works fine:(
Please help me.
Best regards
Simon
|
|
|
Goto Forum:
Current Time: Sat Apr 27 16:37:07 GMT 2024
Powered by FUDForum. Page generated in 0.08555 seconds
|