Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Any comment is welcome to my topics in Eclipse Forum

Hi,

I am sorry I can't write any more code for you other than point you at the already written code available in CDT. As for mixing SWT/AWT I leave that up to you and the UMLet project - but you are correct, CDT does not use AWT. Have you tried stepping through the code that hangs, or pressing pause in the debugger to see what code it is stopped at? If you can provide either a stack trace of the hang, or if an exception is being thrown, then the stack trace of that would be helpful to diagnose the problem.

Jonah

~~~
Jonah Graham
Kichwa Coders
www.kichwacoders.com


On Tue, 17 Dec 2019 at 04:10, Ming Cheng <chengm349@xxxxxxxxxxx> wrote:

Yes, I run my Eclipse plugin (modified UMLet plugin) inside

 

Eclipse IDE for C/C++ Developers

 

Version: 2019-06 (4.12.0)

Build id: 20190614-1200

 

Honestly speaking I am not sure whether UMLet Eclipse eventually will mix SWT and AWT, but I just added extra CDT jars and some Eclipse platform jars to UMLet plugin.  However one possible good symptom is that umlet-gwt failed to compile in my environment  while I can still get umlet-eclipse-plugin jar file. If my assumption that Eclipse platform jars and CDT jars do not use AWT is valid, then I should not mix SWT and AWT together. Since original UMLet Eclipse plugin works well for Eclipse, I’d like to assume they should have solved SWT AWT harmony issue well (?).

 

The following code run well although nothing happen eventually:

 

private void generateAClass(String classname)

{

            IWorkbench workbench = PlatformUI.getWorkbench();

            workbench.getDisplay().asyncExec(new Runnable() {

            public void run() {

                NewClassCreationWizard wizard = new NewClassCreationWizard();

                wizard.setClassName(fileName);

                wizard.addPages();

                wizard.performFinish();

            }

            });

                                       

             JOptionPane.showMessageDialog( null, classname );

}

 

 

But this code hangs again:

 

public class EclipseOpenFile /*extends SectionPart */{

    private static final Logger log = LoggerFactory.getLogger(DiagramFileHandler.class);

    public static void createClass(String location, String classname) {

        Path headerPath = new Path(location + "\\include\\" + classname + ".h");

        JOptionPane.showMessageDialog( null, headerPath.toString());

        Path sourcePath = new Path(location + "\\src\\"+ classname + ".cpp");

 

        IWorkbench workbench = PlatformUI.getWorkbench();

        workbench.getDisplay().asyncExec(new Runnable() {

                public void run() {

            NewClassCodeGenerator generator = new NewClassCodeGenerator(headerPath

                                                                    , sourcePath

                                                                    , null

                                                                    , classname

                                                                    , null, null, null);

            JOptionPane.showMessageDialog( null, "NewClassCodeGenerator");

            try {                                                      

                generator.createClass(new NullProgressMonitor()); 

                JOptionPane.showMessageDialog( null, "createClass");

            } catch (CoreException e) {

                JOptionPane.showMessageDialog( null, "CoreException");

            } catch (Exception e) {

                JOptionPane.showMessageDialog( null, "Exception");

            }

        }

        });

    }

 

The program did not come to:

JOptionPane.showMessageDialog( null, "NewClassCodeGenerator");

 

If I removed workbench.getDisplay().asyncExec(new Runnable() and have the rest directly under creatClass(), the result is the same.

 

Desperately need all of yours guide. Actual working code better.

 

Thanks.

Sent from Mail for Windows 10

 

From: Jonah Graham
Sent: Monday, December 16, 2019 11:02 PM
To: CDT General developers list.
Subject: Re: [cdt-dev] Any comment is welcome to my topics in Eclipse Forum

 

Hi,

 

I think mixing SWT and AWT is going to give you no end of issues, it is possible, but I would try to stick to one or the other. If you need to use both, read up about the SWT AWT bridges. 

 

The code snippet sounds like it is throwing an exception or is hanging. That line (indirectly) does this CUIPlugin.getDefault().getDialogSettings() which needs an Eclipse workspace. Do you have an Eclipse workspace?

 

However you said you didn't want an SWT wizard anyway so read the source of the wizard and you can reuse the source too (as long as you license your code with the EPL), for example, look at NewClassCodeGenerator, it is instantiated by NewClassCreationWizardPage.createClass().

 

Jonah


~~~
Jonah Graham
Kichwa Coders
www.kichwacoders.com

 

 

On Mon, 16 Dec 2019 at 00:16, Ming Cheng <chengm349@xxxxxxxxxxx> wrote:

Hi Alexander and All,

 

I changed code to:

 

JOptionPane.showMessageDialog( null, "generateAClass" );

NewClassCreationWizard page = new NewClassCreationWizard();

JOptionPane.showMessageDialog( null, classname );

 

But the same result (only see first showMessageDialog).

 

In fact I don't need Wizard popup window. I just need to have a simple way to create .h and .cpp files. If possible, please give me a almost there snipet.

 

Thanks.

 

Sent from Mail for Windows 10

 

From: Alexander Fedorov
Sent: Friday, December 13, 2019 6:27 PM
To: cdt-dev@xxxxxxxxxxx
Subject: Re: [cdt-dev] Any comment is welcome to my topics in Eclipse Forum

 

Hi Ming Cheng,

You need to read a bit about how Eclipse JFace and Eclipse Workbench is working. I added the answer below to your GitHub issue as well.

> NewClassCreationWizardPage page = new NewClassCreationWizardPage();

the WizardPage is designed to live inside the Wizard. Please have a closer look to the surrounding code, where should be a Wizard that instantiates this page. What you need to "emulate" the result of wizard work is the content of its "performFinish()" method.

Regards,
AF

13.12.2019 12:59, Ming Cheng пишет:

Hi Jonah,

 

I am following your suggestion about new C++ class but can’t move. I logged an issue to “my” tool

 

https://github.com/umlet/umlet/issues/562

 

Thanks.

 

Sent from Mail for Windows 10

 

From: Jonah Graham
Sent: Thursday, December 5, 2019 10:01 AM
To: CDT General developers list.
Subject: Re: [cdt-dev] Any comment is welcome to my topics in Eclipse Forum

 

Hi,

 

I had a quick look at all these questions - I am not surprised that no one has answered on the forums, the forums are really meant for Users of the Eclipse CDT IDE - i.e. people writing C/C++ code.

 

I don't have answers to most of your questions, but I can try an answer on some of them:

 

> How to stop inserting same include stmt more than once

 

Try looking at how organize imports in CDT is implemented, it manipulates includes so may give you a good idea.

 

>  How to load a file content into a new editor tab

 

Look up the IDE class in Eclipse platform (such as openEditor method)

 

> How to use CDT to create a .h with a class decl?

 

Look how the new C++ class wizard is implemented for some clues.

 


I don't t


~~~
Jonah Graham
Kichwa Coders
www.kichwacoders.com

 

 

_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/cdt-dev

 

 

_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/cdt-dev

 

 

_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/cdt-dev

 

_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/cdt-dev

Back to the top