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
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().
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
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
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
I don't t
_______________________________________________
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