Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse Platform » Eclipse view plugin: swing problem
Eclipse view plugin: swing problem [message #332967] Mon, 17 November 2008 15:05 Go to next message
Ben is currently offline BenFriend
Messages: 3
Registered: July 2009
Junior Member
Hi,

Thanks in advance for any help that could be provided.

I am new to the Eclipse plugin world. I have a very short amount of time
to complete my project and do not have time to learn the SWT library. I am
very familiar with the Swing library and i have found a way to wrap Swing
into the view by doing the following.

public void createPartControl(Composite parent) {
try{

UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel ");
}catch (Exception e){
//TODO: manage exception
}

Composite swtAwtComponent = new Composite(parent, SWT.EMBEDDED);
java.awt.Frame frame = SWT_AWT.new_Frame( swtAwtComponent );
Ftie_ui ui = new Ftie_ui();
frame.add(ui);
}

The Ftie_ui class extends JPanel. Normally, with access to a JPanel, I
figured it would be easy to develop my project with Swing. I added 2
JLabels, 1 JTextField, 1 JPasswordField and 1 JButton. When i ran Eclipse
with my plugin, Everything got loaded in my JPanel, but i could not access
the JTextField and the JPasswordField. I have tryed setEnabled(true) and
setEditable(true) on the fields, but with no success, I could not manage
to put a cursor is the fields. The Ftie_ui class looks like the following
(I know, theres no layout yet).

I am running, windows vista 32bit, java 1.6, Eclipse 3.4.0
I will supply a complete code snippet in case it would help.

For any help someone could bring, I would greatly appreciate it.
Thank you
Ben


package ftie.views;

import javax.swing.*;

import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.*;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.ui.*;
import org.eclipse.swt.SWT;


public class FtieView extends ViewPart {

Composite swtAwtComponent;
java.awt.Frame frame;
Ftie_ui ui;

public FtieView() {

}

public void createPartControl(Composite parent) {
try{

UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel ");
}catch (Exception e){
//TODO: manage exception
}

swtAwtComponent = new Composite(parent, SWT.EMBEDDED);
frame = SWT_AWT.new_Frame( swtAwtComponent );
ui = new Ftie_ui();
frame.add(ui);

}


public void setFocus() {


}
}



package ftie.views;

import javax.swing.*;

public class Ftie_ui extends JPanel{

JLabel labelUser;
JLabel labelPass;
JTextField txtUser;
JPasswordField txtPass;
JButton btnLogin;


public Ftie_ui()
{
//TODO: add layout


labelUser = new JLabel();
labelUser.setText("Username:");

labelPass = new JLabel();
labelPass.setText("Password:");

txtUser = new JTextField(20);
txtUser.setEditable(true);
txtUser.setEnabled(true);

txtPass = new JPasswordField(20);

btnLogin = new JButton("Login");

add(labelUser);
add(labelPass);
add(txtUser);
add(txtPass);
add(btnLogin);
}
}
Re: Eclipse view plugin: swing problem [message #332970 is a reply to message #332967] Mon, 17 November 2008 15:15 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Hi Ben,

I don't know how to solve but I've included the albireo newsgroup which
deals with Swing/SWT.

The problem looks like the Swing event loop is not working appropiately
hence no events are delivered to the Swing components.

Tom

Ben schrieb:
> Hi,
>
> Thanks in advance for any help that could be provided.
>
> I am new to the Eclipse plugin world. I have a very short amount of time
> to complete my project and do not have time to learn the SWT library. I
> am very familiar with the Swing library and i have found a way to wrap
> Swing into the view by doing the following.
>
> public void createPartControl(Composite parent) {
> try{
>
> UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel ");
>
> }catch (Exception e){
> //TODO: manage exception
> }
> Composite swtAwtComponent = new Composite(parent,
> SWT.EMBEDDED);
> java.awt.Frame frame = SWT_AWT.new_Frame( swtAwtComponent );
> Ftie_ui ui = new Ftie_ui();
> frame.add(ui);
> }
>
> The Ftie_ui class extends JPanel. Normally, with access to a JPanel, I
> figured it would be easy to develop my project with Swing. I added 2
> JLabels, 1 JTextField, 1 JPasswordField and 1 JButton. When i ran
> Eclipse with my plugin, Everything got loaded in my JPanel, but i could
> not access the JTextField and the JPasswordField. I have tryed
> setEnabled(true) and setEditable(true) on the fields, but with no
> success, I could not manage to put a cursor is the fields. The Ftie_ui
> class looks like the following (I know, theres no layout yet).
>
> I am running, windows vista 32bit, java 1.6, Eclipse 3.4.0
> I will supply a complete code snippet in case it would help.
>
> For any help someone could bring, I would greatly appreciate it.
> Thank you
> Ben
>
>
> package ftie.views;
>
> import javax.swing.*;
>
> import org.eclipse.swt.widgets.Composite;
> import org.eclipse.ui.part.*;
> import org.eclipse.swt.awt.SWT_AWT;
> import org.eclipse.ui.*;
> import org.eclipse.swt.SWT;
>
>
> public class FtieView extends ViewPart {
>
> Composite swtAwtComponent;
> java.awt.Frame frame;
> Ftie_ui ui;
>
> public FtieView() {
>
> }
>
> public void createPartControl(Composite parent) {
> try{
>
> UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel ");
>
> }catch (Exception e){
> //TODO: manage exception
> }
> swtAwtComponent = new Composite(parent, SWT.EMBEDDED);
> frame = SWT_AWT.new_Frame( swtAwtComponent );
> ui = new Ftie_ui();
> frame.add(ui);
>
> }
>
>
> public void setFocus() {
>
>
> }
> }
>
>
>
> package ftie.views;
>
> import javax.swing.*;
>
> public class Ftie_ui extends JPanel{
>
> JLabel labelUser;
> JLabel labelPass;
> JTextField txtUser;
> JPasswordField txtPass;
> JButton btnLogin;
> public Ftie_ui()
> {
> //TODO: add layout
>
> labelUser = new JLabel();
> labelUser.setText("Username:");
> labelPass = new JLabel();
> labelPass.setText("Password:");
> txtUser = new JTextField(20);
> txtUser.setEditable(true);
> txtUser.setEnabled(true);
> txtPass = new JPasswordField(20);
>
> btnLogin = new JButton("Login");
> add(labelUser);
> add(labelPass);
> add(txtUser);
> add(txtPass);
> add(btnLogin);
> }
> }
>
>
>
>
>
>
>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Eclipse view plugin: swing problem [message #332982 is a reply to message #332967] Mon, 17 November 2008 21:35 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: automatic.javalobby.org

This is probably related to a focus problem with the swt_awt bridge.
It is better to use the Albireo project

http://wiki.eclipse.org/Albireo_Project

The open bugs are summarized on the website

http://wiki.eclipse.org/Albireo_SWT_AWT_bugs

Additionally read this article

http://www.eclipse.org/articles/article.php?file=Article-Swi ng-SWT-Integration/index.html

about the problems which can occur when using the swt_awt
bridge.

I hope this helps
Re: Eclipse view plugin: swing problem [message #332987 is a reply to message #332970] Tue, 18 November 2008 10:33 Go to previous message
Rahul Kamdar is currently offline Rahul KamdarFriend
Messages: 63
Registered: July 2009
Member
Hi Ben,

I make use of SWT_AWT bridge successfully to bring panels from Swing
application into SWT/Eclipse. First thing, if it's possible use Albireo
since SWT_AWT has some bugs and issues and the workarounds could be tricky
depending on your requirements.

Try the following to see if it works:

Hold the composite object > parent in a global variable at your FtieView
class level. Then override the "setFocus" method of "ViewPart" and in this
createPartControl with the global parent object. This is not the best way
but if it works then we could try the workaround.

Thanks,
Rahul

"Tom Schindl" <tom.schindl@bestsolution.at> wrote in message
news:gfs1pu$chn$1@build.eclipse.org...
> Hi Ben,
>
> I don't know how to solve but I've included the albireo newsgroup which
> deals with Swing/SWT.
>
> The problem looks like the Swing event loop is not working appropiately
> hence no events are delivered to the Swing components.
>
> Tom
>
> Ben schrieb:
>> Hi,
>>
>> Thanks in advance for any help that could be provided.
>>
>> I am new to the Eclipse plugin world. I have a very short amount of time
>> to complete my project and do not have time to learn the SWT library. I
>> am very familiar with the Swing library and i have found a way to wrap
>> Swing into the view by doing the following.
>>
>> public void createPartControl(Composite parent) {
>> try{
>>
>> UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel ");
>>
>> }catch (Exception e){
>> //TODO: manage exception
>> }
>> Composite swtAwtComponent = new Composite(parent,
>> SWT.EMBEDDED);
>> java.awt.Frame frame = SWT_AWT.new_Frame( swtAwtComponent );
>> Ftie_ui ui = new Ftie_ui();
>> frame.add(ui);
>> }
>>
>> The Ftie_ui class extends JPanel. Normally, with access to a JPanel, I
>> figured it would be easy to develop my project with Swing. I added 2
>> JLabels, 1 JTextField, 1 JPasswordField and 1 JButton. When i ran
>> Eclipse with my plugin, Everything got loaded in my JPanel, but i could
>> not access the JTextField and the JPasswordField. I have tryed
>> setEnabled(true) and setEditable(true) on the fields, but with no
>> success, I could not manage to put a cursor is the fields. The Ftie_ui
>> class looks like the following (I know, theres no layout yet).
>>
>> I am running, windows vista 32bit, java 1.6, Eclipse 3.4.0
>> I will supply a complete code snippet in case it would help.
>>
>> For any help someone could bring, I would greatly appreciate it.
>> Thank you
>> Ben
>>
>>
>> package ftie.views;
>>
>> import javax.swing.*;
>>
>> import org.eclipse.swt.widgets.Composite;
>> import org.eclipse.ui.part.*;
>> import org.eclipse.swt.awt.SWT_AWT;
>> import org.eclipse.ui.*;
>> import org.eclipse.swt.SWT;
>>
>>
>> public class FtieView extends ViewPart {
>>
>> Composite swtAwtComponent;
>> java.awt.Frame frame;
>> Ftie_ui ui;
>>
>> public FtieView() {
>>
>> }
>>
>> public void createPartControl(Composite parent) {
>> try{
>>
>> UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel ");
>>
>> }catch (Exception e){
>> //TODO: manage exception
>> }
>> swtAwtComponent = new Composite(parent, SWT.EMBEDDED);
>> frame = SWT_AWT.new_Frame( swtAwtComponent );
>> ui = new Ftie_ui();
>> frame.add(ui);
>>
>> }
>>
>>
>> public void setFocus() {
>>
>>
>> }
>> }
>>
>>
>>
>> package ftie.views;
>>
>> import javax.swing.*;
>>
>> public class Ftie_ui extends JPanel{
>>
>> JLabel labelUser;
>> JLabel labelPass;
>> JTextField txtUser;
>> JPasswordField txtPass;
>> JButton btnLogin;
>> public Ftie_ui()
>> {
>> //TODO: add layout
>>
>> labelUser = new JLabel();
>> labelUser.setText("Username:");
>> labelPass = new JLabel();
>> labelPass.setText("Password:");
>> txtUser = new JTextField(20);
>> txtUser.setEditable(true);
>> txtUser.setEnabled(true);
>> txtPass = new JPasswordField(20);
>>
>> btnLogin = new JButton("Login");
>> add(labelUser);
>> add(labelPass);
>> add(txtUser);
>> add(txtPass);
>> add(btnLogin);
>> }
>> }
>>
>>
>>
>>
>>
>>
>>
>
>
> --
> B e s t S o l u t i o n . at
> ------------------------------------------------------------ --------
> Tom Schindl JFace-Committer
> ------------------------------------------------------------ --------
Previous Topic:CompareEditorInput setDirty difference between eclipse 3.2 and 3.3
Next Topic:Error updating clean Ganymede SR1 (only Linux)
Goto Forum:
  


Current Time: Sat Apr 27 03:05:03 GMT 2024

Powered by FUDForum. Page generated in 0.03181 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top