In a Java project with developers that use different IDEs, say Eclipse and IntelliJ, what's the best way of developing visual components using the tools offered by the IDEs ("Visual Editor Project" for Eclipse and "Swing GUI Designer" for IntelliJ)?
If a developer using Eclipse needs to make changes to a GUI written by another developer in IntelliJ (and vice versa) he will have quite a hard time and maybe even make the code incompatible with the original tool that built it.
Is there a solution or do all developer just need to use the same tool?
I see 2 solutions:
Don't use GUI design tools at all, code the UI code by hand
Use a plug-in available for most of the IDEs (such as JFormDesigner)
Related
Does eclipse have its own library, or does java have a big shared library that all IDE's use?
Thanks, and sorry for my lack of knowledge.
Eclipse has its own platform/framework for developing GUI applications in general and IDE in particular. This in turn is based on the OSGi standard for modular Java applications.
Eclipse even includes a native code widget library (SWT) that is used instead of Swing.
Large parts of this infrastructure are shared among the Eclipse family of IDE (such as Aptana), but not really with other IDE such as Netbeans. OTOH, some task-specific code, such as drivers to connect to source control systems and databases, is usable with other platforms as well.
Eclipse also has its own Java compiler.
All IDEs don't use a big shared library.
IntelliJ is nothing like Eclipse.
JDT is the Java infrastructure of Eclipse. It is used by Eclipse and is popular outside of it as well, but there is no "library that all IDE's share".
So here we go. I want to choose between Aptana, Eclipse, and Netbeans. I want a sort of all inclusive program as I try out these different languages to see what I want to try out. I have VS for my C/C++. So do any of these support HTML, CSS, Javascript, and Java? I think it's netbeans but I'm not sure.
Also, what is the best paid app for Javascript? Is dreamweaver any good?
Aptana, Eclipse, and Netbeans all support HTML, CSS, JavaScript and Java.
Aptana is actually Eclipse under the covers with what looks like better support for web applications.
I have used Eclipse extensively and found that it was sufficient for my Java web development work.
Recently I have switched to using IntelliJ IDEA after using their JavaScript IDE - Webstorm. IntelliJ IDEA is a full-featured IDE with great support for various languages and frameworks. Webstorm (as far as I can tell) is a cut-down version of IntelliJ IDEA specifically focused on JavaScript development.
The great thing about IntelliJ IDEA and Webstorm is their support for mixed languages. That is, if you have HTML, CSS, and Javascript all in one file, it understands it all and highlights, and formats, the code for you properly. Another great feature are the code inspections which analyse your code for errors and common mistakes - this is a great feature.
Both IntelliJ IDEA and Webstorm are paid applications, but you can try them out for free for 30 days.
I would highly recommend trying out IntelliJ IDEA and/or Webstorm.
Eclipse is a develpoers best friend. Every language leave for .NET, but it's MEANT for Java, and the others. And NEVER buy an app to develop, it becomes a crutch.
And Eclipse has a million and a half plug-ins that can become super useful... just found this LESS CSS compiler that runs on file save... epic!
Depends on what you're doing but every place I've worked for prefers Eclipse over anything else, may just be industry standard but I get along with Eclipse very well. One thing that stands out it's modularity and the ability to find a plugin for any specific technology. I have used Netbeans in the past and it's not bad - perhaps the biggest advantage, at least when I was using it, was the built-in GUI builder specific to Swing applications but I suppose it's a matter of preference in the end. I believe both have support for the technologies that you mentioned although I haven't encountered Aptana before.
Aptana is actually Eclipse, bundled directly with highlighters for CSS, HTML, JS and adds additional very handy functionality. But you just as well could use eclipse and download all the plugins via the plugin manager and you'd have the experience of pornific-java developement, as well as porntastic javascript/html/css possibilities.
I'd recommend Aptana, unless you really need Java, then I'd do the Eclipse+Plugins attempt.
There are Eclipse builds for everything and is widely used. Netbeans is more for (you guessed it) web development, but I find a lot of people find it easier to use. Eclipse confuses people when they start using it. They both do HTML, JavaScript and CSS pretty well.
I have written a java programs using JDT in eclipse. I have to convert that to eclipse plugin. My question is, whether my code inside class will remain same? Or do I have to change it for plugin?
It doesn't even make sense to talk about "converting" an arbitrary Java program to an eclipse plugin.
The point of an eclipse plugin is to offer functionality that integrates with the rest of the eclipse platform, or uses the features of the platform. Thus, eclipse plugins, by definition, use the eclipse RCP APIs pretty intensively.
If your program's functionality lends itself to integration with the eclipse platform, it could be extended to do so, and if it would benefit from the platform's features it could be ported to use those rather than whatever it was doing before to achieve the same effects. And yes, both would require considerable changes in the program.
I want to base a tool on eclipse in a way that I could change eclipse framework whenever required. So probably writing a plugin is not a good choice ?
I want to extend it in a way as in Rodin(http://www.event-b.org/install.html)
The Rodin Platform is an Eclipse-based IDE for Event-B that provides effective support for refinement and mathematical proof. The platform is open source, contributes to the Eclipse framework and is further extendable with plugins.
So far I decided to download Eclipse platform project as directed in (http://wiki.eclipse.org/CVS_Howto) and downloaded all projects in(
:pserver:anonymous#dev.eclipse.org:/cvsroot/eclipse).
Should I download all of them?
Some of them contain error.
Is it correct way to do what I am trying to do?
How should I remove those errors?
I want to base a tool on eclipse in a
way that I could change eclipse
framework whenever required. So
probably writing a plugin is not a
good choice ? I want to extend it in a
way as in
Rodin(http://www.event-b.org/install.html)
Well there can be two approaches to extend eclipse framework. First approach, as you already know, is writing eclipse plugins. This is the way other platform specific versions or flavors of eclipse do. For example, eclipse Eclipse WTP and Eclipse Modelling work in the same way. They have core eclipse base i.e. classic Java base and then on top of it they have their on set of plugins and features. To give it a more product like feel, they have their own perspectives, views, cheatsheets and splash screen. Also to make your tool extensible you can provide custom extension points. These links would be useful:
PDE Introduction
Plugin Tutorial
Hello world plugin
How to write a plugin for Eclipse?
Eclipse Extension Point
Alternate Approach
The second way is more like making your own product, which in turn is based on eclipse framework, commonly known as Rich Client Platform (RCP). There are tools like IBM Lotus Notes, IBM Sametime, Bittorrent client Vuze. Again if you want to have an extensible IDE then you have to provide some custom extension points or use the existing ones. To make your application moduler, you have to organize it in plugins. The main benefit against the previous approach is that you don't have to ship the plugins which you are not using, which in turn makes your product smaller. The problem with the approach is that you have to think out the look and feel of the IDE, have to implement or least hook into the existing functionality like plugin installation from remote sites, code refactor, Java IDE, run/debug configurations etc. These links would be useful:
RCP Tutorial 1
RCP Tutorial 2
RCP Tutorial 3
RCP Tutorial 4
So far I decided to download Eclipse
platform project as directed in
(http://wiki.eclipse.org/CVS_Howto)
and downloaded all projects in(
:pserver:anonymous#dev.eclipse.org:/cvsroot/eclipse).
Should I download all of them?
Well it depends what do you want to do with them. If you are going to modify some functionalities (add or remove) from them then YES download/checkout the ones which you want to modify. Otherwise, if your intention is to extend eclipse then you need not to checkout/download any of the plugin/sources. Most of them have well defined and documented extension points; just use them.
Some of them contain error. How should
I remove those errors?
Its hard to say how to remove the errors without the stacktrace :). Still you might not need the source as I have mentioned above.
Is it correct way to do what I am
trying to do?
I will suggest you to go in a step wise manner. For me the logical step would be:
Learn about SWT widgets
Play with JFace
Read the releavent eclipse corner articles
Sit back and think what all features you need, out of that what can be reused from eclipse and what extra you need to develop.
Extending eclipse is a very well defined process. You won't face any problem :).
Good luck.
To base a tool on eclipse, you contribute plugins. You don't need to get the ones that are in CVS. Simply go to the eclipse download page, http://download.eclipse.org/eclipse/downloads/ and get the Eclipse SDK. That contains PDE, the Plug-in Development Environment, and source and schema for all of the API you would use.
Then check out the Official FAQ as a getting started reference. There's even a section on how to contribute your own language: http://wiki.eclipse.org/The_Official_Eclipse_FAQs
There's some "Getting Started" stuff on the Eclipse Wiki (includes a lot of the links that Favonius and Paul mentioned).
http://wiki.eclipse.org/Learn_About_Eclipse
I am new to the world of Java and web programming. Never wrote a single line of javascript and my knowledge of HTML is pretty basic. Although, I am very experienced with .NET, so I guess transition to Java should not be a revolution.
Anyway, I wish to learn GWT and for that I want to work on Eclipse (I have Mac at home, so no Visual Studio).
Now, there are a dozen different download flavors of Eclipse, so my question is - which one best suits my needs?
Thanks.
P.S.
This is probably not a factor in the decision, but I will need Visual Studio keyboard bindings. I want to believe that no matter which flavor I install, I will be able to change the keyboard bindings later.
You should be fine with any version of Eclipse. Eclipse is extremely modular so it's only really a case of ensuring you have the correct plugins installed.
I'd recommend:
Start with the Eclipse IDE for Java Developers as a base install. This has everything you need for Java (i.e. the Java Development Tools, stndard editor features, source code control etc.)
Then install the GWT plugin for Eclipse
After that you should be good to go. If you find you need more plugins later, you can easily add them.
I also know both .NET and Java, and you should not have have much difficulty making the transition - it's really just a case of learning a few slightly different conventions, APIs and ways of doing things.
With regards to the keyboard bindings, I've never really changed from the default settings myself but they are completely customizable so I'm sure you can get it set up how you want. You might want to look at the answers to this question, which give you a few options (apparently you can download the full set of bindings, or install the C++ plugin which includes them).
I would probably start by installing Eclipse for Java EE developers and then the GWT plugin. It will cause less dependencies to be installed and you will get some things installed that you will probably want to start using later. But regardless of whether you are using that or the Java developer-version you should not have any major problems.