|
|
||||||||||||||||||||||||||||||||||||||||||||||
Masoud Kalali's BlogCommunity: NetBeans ArchivesNetBeans Platform Certification and training.Posted by kalali on May 20, 2008 at 02:43 AM | Permalink | Comments (1)Netbeans is well known for beeing a great IDE for developing Java SE, Java EE, C++, Java ME, Sun SPOT, Ruby on Rail, PHP, Groovy, ... but NetBeans has more to offer when it come to developing highly modular desktop applications. The desktop application can be from any possible category like Business oriented, scientific, utilities, development tools, entertinement, etc. You can find a list of applications based on NetBeans platform here And it is provided by the NetBeans platform which what NetBeans IDE and all of its complementary packs and plugins are developed based on it.
If you are a Platform developer you may already know that there are many valuable resources like books and articles already available to start with developing applications on top of NetBeans platform. In addition to all of there resources, NetBeans provides you with another option, NetBeans Platform Certified Training, through this program you can freely attend training courses and get certification based on the level of knowledge and experience that you demonestrate at the end or through the program.
The train starts running, NetBeans Innovators Grants has just announced.Posted by kalali on January 29, 2008 at 07:41 AM | Permalink | Comments (0)The train start running, NetBeans Innovators Grants has just announced.
If you fit into one of the above categories, you can join the NetBeans Innovators Grants, a sub program of SUN Microsystems US$ 1 million Program which is intended to help people develop open source projects sponsored by SUN Microsystems. Take a look at NetBeans Innovators Grants Home Page, read it carefully, check SubMission Details page to gain some understanding of what is expected in your submission, and after you prepared your project proposal you can come to Proposal Submission page and file in the forms with your project details in order to jump into the contest train. Another item which could be the subject of a project is contributing articles, tutorials and sample codes to NetBeans Zone located at Netbeans Zone, this web site. it is intended to be the most complete source of articles, links,.... for NetBeans platform and IDE. P.S: Make sure that you read the legal page located at: Legal information SHIFT+ALT+ENTER, a cool NetBeans shortcutPosted by kalali on June 14, 2007 at 11:14 AM | Permalink | Comments (4)Today accidentally I find a coll shortcut in NetBeans, it do something fun, if you press ALT+SHIFT+ENTER IDE switch to full screen, it will remove Title bar, status bar, and toolbar to give you a little more space when you are writing your code. Here is an image of netbeans in this mode, you will find it usefull. Also If you are looking for some NetBeans sample you can take a look at NetBeans IDE Sample Applications which is a good start point for you to find some ready to run samples for different platform from java SE to RoR which is fully supported in NetBeans 6. A scenario based tutorial about using NetBeans BPEL, JBI and Web service developemt featuresPosted by kalali on May 11, 2007 at 01:33 PM | Permalink | Comments (3)NetBeans Enterprise pack 5.5.1 provides several new features in as well as those ones in version 5.5. One of the most important features is related to ESB. In this article I will cover some of NetBeans capabilities to develop application based on the SOA paradigm. You will see what ESB is and how it can ease development and deployment. I will also show what BPEL is and how it can affect your development, while demonstrating NetBeans’ level of support for ESB and BPEL. Building a scenario-based sample which uses some of NetBeans Enterprise Pack features in the BPEL and ESB area is the final things I will demonstrate. What can an ESB do for us? An ESB which can act as a JBI compliant is an infrastructure that manages, monitors or enhances service's capabilities in several ways like providing more connectivity mechanisms which has been added to ESB by binding components. Binding components can interact with resources outside the ESB. For example a JDBC binding component can act like a consumer and poll a database table for new records and whenever new records become available transforms them to a standard message named Normalized Message and sends it to the other participants by using a message router named Normalized Message Router or NMR. Messages that are produced by binding components may require transformation in order to meet business rules or making usable messages for other binding components or service engines. A service engine provides and consumes services within ESB. BPEL service engine which hosts long running business process based on BPEL standard is as a sample of service engine. JBI compliant ESBs are based on XML-web services standards and usually support several WS-I standards like WS-Addressing, WS-Security and etc. When you install NetBeans enterprise pack you are adding a wide range of capabilities to your IDE for developing composite applications which are equal to JBI service assemblies. At the same time, installing Enterprise pack will install a version of glassfish integrated with Open-ESB 2.0 that addresses all your needs. What is BPEL role in your SOA? I am not going to talk about technical details of BPEL; I would prefer to say what it can do. BPEL allows us to orchestrate some fine grained web services to perform a more coarse grained long lived asynchronous or short lived synchronous business operations. For example you can develop a web service that persists data based on some meta-data which are attached to your data, a web service that check validation against pre-defined rules, a service that sends email to some recipients. Now you can use BPEL and some other features that are provided by BPEL engine to perform a business operation like order saving and customer registration; so BPEL provides us with features that can highly reduce amount of fine grained web services that we develop in our entire enterprise. What does NetBeans as a development tools?
NetBeans enterprise pack provides
us with a first class designer for BPEL, WSDL and XSD. Another very good feature
that is introduced in Enterprise pack 5.5.1 is CASA editor.
Composite Application Service Assembly editor let developers to see a high-level
view of how the Service Assembly is connected and configured. More importantly,
users can modify connections between elements within the Service Assembly. The routing
of Service Units and Binding Components can be easily tweaked, or completely redone
as it provide visual editor enriched with a component palette for all available
artifacts like binding components and service units.
When you choose to install glassfish you have option to select its path, ports,
and default JDK which are important options. OK, what that really amazed me about new modules for NetBeans IDE is Jasper
Report Visual designer, Its really cool to see a report designer for jasper
report integrated into NetBeans. I know that it has some basic integration but it is the initial release of
this really cool module. here are some images of Jasper report designer
integrated into NetBeans. the project home page is
https://jarvis.dev.java.net/ credits goes to developer of this really
required module. NetBeans 6 release is as amazing as NetBeans 5 release was. Netbeans 5.5 and Jdeveloper 10.1.3.1 which one ? which Made NetBeans a good choice for developers. I think JDeveloper (for now) is ahead of NetBeans as it provide much more
facilities for developers , but for later version we can not tell anything
because NetBeans people are unpredictable , as they prove their credibility by
release of NetBeans 5. What you have read is my opinion which might be biased. we never can say that
one IDE is 100% better than another , it is just context oriented and the users
view point. but one thing is completely obvious that JDeveloper and NetBeans
both are going to provide rich facilities for SOA. NetBeans by means of·
Enterprise pack and using glassfish with integrated BPMS from intalio and·
what it has acquired from seebyond. In this two part series I will try to show you how easily you can build
applications using NetBeans 5.5 based on seam , facelets , jsf and new EJB
3 standard. I will not discuss any of framework in details as you can find detailed
information about each of them in their homepage and some other articles. What you will need to follow this series : seam distribution contain Facelets too , but i strongly suggest you get
Facelets distribution separately and take a look at its samples and very good
documentation. indeed both Facelets and seam has very good documentation. In this entry I will introduce each of this frameworks in very brief to
make the series stand alone , and i will show you how to setup the development
environment and we will go with first part which is developing seam layer codes. JBoss seam is created to leverage maximum possible feature of Java EE 5
standards like JSF and EJB3. With many more features. But about JSF , JSF is a web framework , it is Standard and
Developed under JSR 127. about Facelets , we will discuss more in next articles , but for now you
should know that Facelets bring some view related enhancement and features to
JSF community . lets start the job of creating simplest sample ;) . I assume that you download seam and extract it in seam_home Also your
NetBeans 5.5 is running and an application server capable of containing
ejb3 (Glassfish) is configured with your IDE. for sake of simplicity we make one Library in our NetBeans IDE to
make our job easier. as you know each library could contain some jar files,
etc... Create a library name it seam and add the following jar files to it , the
first add seam library to Registeration-EJBModule and Registeration-WebModule Switch to runtime view (CTRL+5).Extend database node , if you have no
database created in your embedded derby then create a database and create
a table with following characteristics after you create this table , create a new enterprise application project by
going to , file>new project>enterprise application final shape of users CMP will be like : we are finished with our POJO EJB :-) , now lets go and handle web layer stuff , from now we are working with seam view layer and JSF , I will talk about Facelets later in other articles of this series. as I said in sample scenario we have just one action , so we can use a
managed bean or plain java object or whatever that is useable here as action
listener or use a stateless session bean (using session bean is what JBoss
offer) so we will use a stateless session bean to implement our action listener
, it will also helps you to see how an stateless session bean is implemented in
java EE 5. import cmps.Users;
import java.util.List;
import javax.ejb.Stateless;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.hibernate.validator.Valid;
import org.jboss.seam.annotations.Factory;
import org.jboss.seam.annotations.IfInvalid;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Outcome;
import org.jboss.seam.annotations.datamodel.DataModel;
import org.jboss.seam.core.FacesMessages;
import org.jboss.seam.ejb.SeamInterceptor;
@Stateless
@Name("")
public class ActionBean implements sbeans.ActionLocal
{
@IfInvalid(outcome=Outcome.REDISPLAY)
public String ()
{
List existing = em.createQuery("select username from User where username=:username")
.setParameter("username", user.getUsername())
.getResultList();
if (existing.size()==0)
{
em.persist(user);
return "success";
}
else
{
FacesMessages.instance().add("User #{user.username} already exists");
return "success";
}
}
}
we will need to add same method signature to our session bean local interface , so add the method signature to ActionLocal class. it will looks like :
package sbeans;
/**
* This is the business interface for Action enterprise bean.
*/
public interface ActionLocal {
public String ();
}
now we are finished with the action , you
may ask what are those annotation stuff in the session bean , so I should ask
you to take a look at seam reference or wait until next part of this series. I
should say that it is a very same version of seam sample that is implemented
again in NetBeans IDE.we are finished with EJBModule for now , lets take a look at what we will have in web module. first of all you need to add JSF framework to web module to do this , right click on web module and select properties , go to frameworks node and add JSF framework to the project. In web module we just have 2 JSF pages , one to , one to show the that s/he ed . Create following JSF files ,
we need to add some navigation case to our faces-config.xml , so extend web module note and under configuration files open the faces-config.xml we should add 4 navigation case to it , so right click inside the editor ,which show content of faces-config.xml, and select add navigation rule. a dialog will open , just fill the dialog as following table show
Now right click in the editor and add 4 new navigation case , these cases will handle navigating from one view to another.
lets code with the register.jsp , open the register.jsp in your NetBeans editor change the content to : <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib prefix="s" uri="http://jboss.com/products/seam/taglib"%>
<html>
<head>
<title> New User</title>
</head>
<body>
<f:view>
<h:form>
<table border="0">
<s:validateAll>
<tr>
<td>Username</td>
<td><h:inputText id="username" value="#{user.username}" required="true" /></td>
<td> <h:message for="username"/> </td>
</tr>
<tr>
<td>Real Name</td>
<td><h:inputText id="name" value="#{user.name}" required="true" /></td>
<td> <h:message for="name"/> </td>
</tr>
<tr>
<td>Password</td>
<td><h:inputSecret id="password" value="#{user.password}" required="true" /></td>
<td> <h:message for="password"/> </td>
</tr>
</s:validateAll>
</table>
<h:messages globalOnly="true"/>
<h:commandButton type="submit" value="" action="#{.}"/>
</h:form>
</f:view>
</body>
</html>
No we need to create the registered.jsp which show that our user is registered. open the file in your editor and change its content to looks like :
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
<head>
<title>Successfully ed New User</title>
</head>
<body>
<f:view>
Welcome, <h:outputText value="#{user.name}"/>,
you are successfully ed as <h:outputText value="#{user.username}"/>.
</f:view>
</body>
</html>
Now we are almost finished with JSf files , there are some changes that we should make in web.xml and faces-config.xml.first open web.xml and add the following lines to it.make sure the you add them directly inside <web-app> node.
<context-param>
<description>
</description>
<param-name>org.jboss.seam.core.init.jndiPattern</param-name>
<param-value>java:comp/env/registration/#{ejbName}/local</param-value>
</context-param>
<listener>
<listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
</listener>
<ejb-local-ref>
<ejb-ref-name>registration/RegisterActionBean/local</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local>sbeans.RegisterActionLocal</local>
< ejb-link>RegisterActionBean</ejb-link>
</ejb-local-ref>
Now open faces-config.xml and add the following lines to it. <lifecycle> <phase-listener>org.jboss.seam.jsf.SeamPhaseListener</phase-listener> </lifecycle> That's it , you are finished creating your first seam sample in netbeans , lets execute the application and see the result. press f6 and wait until your browser opens , navigate to http://localhost:8080/Registration-WebModule/faces/register.jsp enter some information and then press register button. You can check whether it applied or not by switching to runtime view and checking your Users table data . you can find complete explanation of jsp/java codes in Seam tutorial chapter 1 at : http://docs.jboss.com/seam/1.0.0.GA/reference/en/html/tutorial.html
Step by Step toward a jms sample in NetBeans and yes GlassFish. part 2 : Remote ClientPosted by kalali on May 10, 2006 at 06:01 AM | Permalink | Comments (0)In previous part you saw that how easy is to make an MDB to consume messages and a jsp/Servlet Front End to send message to a queue. in this part i will show you how you can send message to a queue from a remote j2se client. you should know that in jms sending and reciving mesages has similar steps , some small changes require to consume message from a j2se client instead of sending messages. to make it more clear , the main purpose of an MDB is to consume messages as they arrive , The MDB onMessage(..) is called whenever a message become available in destination that MDB is binded to it. sure we can do what ever we want after message recieved. for example you can send the message that you recive from a queue to several topics , you can process it to do some database operation.... usually we use JMS for executing Asynchronous operations ,bringing more decoupling of a system components.... but lets come to our own steps to create a simple remote client that will sends some messages to tQueue that we made in first part of this series. then we will see that our messages are reciveing by TMDB. As you know we used a context object to locate the Queue and ConnectionFactory . the servlet code was like: ... Context ctx = new InitialContext(); ...By default a JNDI client assume that it is in a correctly configured environment , so when we do not pass a HatshTable to IinitialContext , the InitialContextFactory will return a context configured with that environment .In server environment we do not need to explicity pass parameters to InitialContext unless we need to initiate a context for another environment. But, what are this parameters and how we can use them to initiate a context for none default environemtn or in places that there is no default environemt pre-configured , situation like standalone remote clients? in a such situation we should configure the InitialContext using a HashTable that contain some parameters, There are several parameter that can be used to configure the initialContext but Two most important ones are :
I should tell that we can also make this parameter to be the jvm default parameter and allows the Initialcontext to return a context without need to pass any arguments. in this way we need to pass parameters to java command when we want to start it. for example you can use : java -Djava.naming.provider.url="iiop://127.0.0.1:3700" -Djava.naming.factory.initial="com.sun.appserv.naming.S1ASCtxFactory" to start our application. this way you allows the Initialcontext to return a context without need to configure it by a HashTable. For our Sample we will use a hashtable to configure the InitialContext , but you can try to pass parameters to java instead and observ the execution of your application. To create a j2se remote client we need to add some jar files to our project , NetBeans provide its own way to manage jar files that may be used in more than one project. it is Libraries.... Run NetBeans, From Tools menu select Library Manager , create a new library and name it jms . Now you can add as much jar files to this library as you need , then it will be reuseable for your other projects. add following jar files to this library , I use glassfish_home as installation directory of glassfish.
Create a j2se project using , File > new project > general > java application. name the application jmsClient and allow the IDE to create a Main class for you. You shoud add that library that you create to this project. to do this , expand the project node , right click on the libraries and select add library Now from the library list select jms . Up to now you have done 30% of creating an stand alone remote client to interact with your jms resources like connectionFactories and destinations. Now we need to code the main method of main class . expand the jmsClient node , expand the source packages and finally open the main class of your project. The overall look of your code shoul be like the following :
public class JmsClient {
Context ctx;
public JmsClient() {
Hashtable properties = new Hashtable(2);
properties.put(Context.PROVIDER_URL,"iiop://127.0.0.1:3700");
properties.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.appserv.naming.S1ASCtxFactory");
try {
ctx = new InitialContext(properties);
} catch (NamingException ex) {
ex.printStackTrace();
}
}
public Object lookup(String name){
try {
return ctx.lookup(name);
} catch (NamingException ex) {
ex.printStackTrace();
}
return null;
}
public static void main(String[] args) {
JmsClient client = new JmsClient();
try{
ConnectionFactory connectionFactory = (ConnectionFactory)client.lookup("jms/tConnectionFactory");
Queue queue = (Queue)client.lookup("jms/tQueue");
javax.jms.Connection connection = connectionFactory.createConnection();
javax.jms.Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
MessageProducer messageProducer = session.createProducer(queue);
for(int i=0;i<5;i++) {
TextMessage message = session.createTextMessage("It is a message from main class "+ ": "+ i);
System.out.println( "It come from main class:"+ message.getText());
messageProducer.send(message);
}
} catch(Exception ex){
ex.printStackTrace();
}
}
}
Now lets see what the above code means , i will not go indepth because JMS APIs are discussed too much :-) . In constructor we configured a context object named ctx we encapsulate the lookpu task in a method named lookup(...) we usually use a service locator or cached service locator to locate our objects in JNDI because JNDI lokups are time consumer In main method:
Now lets run the program and see the result , to run the application you nedd to complete the first part of this series , then you should run the application server , and if you like to have a demonestration like what i will show you , you should deploy the application that we made in first part. i assume you have completed first part and you have the application server running , Now run the client that we made and what you will see in output window should be like : and if you take a look at application server log file (in runtime tab , expand the servers node and rigt click on the glassfish instance , now select view server log..) what you should see in the server log should be something like : messages that we send via standalone client will reach the queue that the MDB is listening on it , as soon as we send a message MDB will pick it up and start processing it. you can download the standalone client project from here Step by Step toward a jms sample in NetBeans and yes GlassFishPosted by kalali on May 05, 2006 at 06:40 AM | Permalink | Comments (4)Java EE 5 brings many ease of use in EJB development world and certainly it is one of biggest step ahead in java EE land. NetBeans 5.5 is another big step toward making development on top Java EE some easier. NetBeans is a very easy to learn and use because it does not bring many stuff on the screen to "Occupy all the space" instead it provide maximum useability by means of limited number of views. GlassFish as Reference implementation of JAVA EE 5 , provide you with all service that are named in java EE spec but it is not similar to older RI version of J2EE ,just remember J2EE 1.3 RI it is much more better in term of functionality, performance, ease of use and ... here I will tell you steps that you need to follow to build a simple MDB , a web based message producer and a remote message producer. when you follow this entry you will be able to deal with basic aspect of JMS in Action and not only on your papers. but what do we need to have our JMS application running ?
To create Queue and connection follow these steps :
go to project view , right click on EJB module and select NewMessage-Driven Bean... a window will open and ask you for some attributes of this MDB fill in the names like :
*** This is where our MDB is assigned to , whether it is a topic in publish/subscribe scenario or a queue in point-to-point scenario. Now change the implementation of your onMessage(...) as following , we also add one private object to our class , make sure that you include it too.
@Resource
private MessageDrivenContext mdc;
public void onMessage(Message message) {
TextMessage msg = null;
try {
if (message instanceof TextMessage) {
msg = (TextMessage) message;
System.out.println("A Message received in TMDB: " +
msg.getText());
} else {
System.out.println("Message of wrong type: " +
message.getClass().getName());
}
} catch (JMSException e) {
e.printStackTrace();
mdc.setRollbackOnly();
} catch (Throwable te) {
te.printStackTrace();
}
}
we just made one more change in class skeleton and that is our MessageDrivenContext variable , we usually use this to call setRollbackOnly(...) when we use an MDB in a transactional scenario for this sample you simpley can ignore it. Now lets make our web application to send some messages to that Queue and let the MDB fetch and process them. wxpand web application node , and double click on index.jsp after it opens , change its content like the following , sure you can use component platte to drag and drop items to jsp source file :-) <%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <center> <form action="sendMessage"> <table cellspacing="20" > <tbody> <tr> <td>Enter some message: </td> <td><input type="text" name="message" value="Enter your message here" width="30" /></td> </tr> </tbody> </table> <input type="submit" value="Send The message" name="send" /> </center> </form> </body> </html> Now we need to build a servlet , which will send messages to our Queue , for this task you need to do these steps :
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); //start the jms stuff try{ Context ctx = new InitialContext(); ConnectionFactory connectionFactory = (ConnectionFactory)ctx.lookup("jms/tConnectionFactory"); Queue queue = (Queue)ctx.lookup("jms/tQueue"); javax.jms.Connection connection = connectionFactory.createConnection(); javax.jms.Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE); MessageProducer messageProducer = session.createProducer(queue); TextMessage message = session.createTextMessage(); message.setText(request.getParameter("message")); System.out.println( "It come from Servlet:"+ message.getText()); messageProducer.send(message); //message sent , it was all //show what we have done in this servlet out.println("<html>"); out.println("<head>"); out.println("<title>Servlet sendMessage</title>"); out.println("</head>"); out.println("<body>"); out.println("<center>"); out.print("Servlet Send this message <h2>"+request.getParameter("message") + "</h2> to this Queue : <h2>"+queue.getQueueName()+"</h2>"); out.println("</center>"); out.println("</body>"); out.println("</html>"); } catch(Exception ex){ ex.printStackTrace(); } out.close(); } It was all you should do to create a JMS point to point sample. to view what you have Done , press F6 , if you did all the above as i said you will see a page like : Now just give it a message and press the button , what you will see should looks like the following image , in case that your praise the NetBeans and GlassFish as i did ;-) and if you look at Application server log file , you will see something similar to : (to view the application server log file go to runtime view , right click on glassfish node and select view log file) You can download the project from here but make sure that you build the connection factory and queue because project will need them . In next part i will show you how easily you can make a remote client to deal with your jms destinations. A New Module for Netbeans IDE , an statistical CVS Reporter...Posted by kalali on March 07, 2006 at 01:01 PM | Permalink | Comments (4)2 weeks ago I was looking at www.sourceforge.Net for a utility that allows me to get some statistical information from CVS repositories. There are some commercial products that do this job in a very perfect manner , but those are commercial and feature over loaded.after some search I find VCS Report , I get the package and get some chart from my CVS repositories. Some days ago I get the source code of the project and looked at the source ,Amazing , it uses a NetBeans library to connect to CVS servers , but there is no NetBeans plugin available in the download section , so I start and create a plugin for NetBeans , although it is in very early step and throw some exceptions some times but it works fine with NetBeans . I will put it in my UC in next few days after i make sure that i change it to comply with NetBeans in some acceptable degrees. so far I create a TopComponent that contain the reporting stuff ,you can View image . Now Configuration system (saving and loading your previous settings) and CVS setup dialog are ordinary swing dialogs instead of NetBeans specific dialogs, indeed these are exact clone of original VCS Report dialogs. CVS setup dialog is like :
Password request dialog for CVS is like :
Current Feature of plugin Comply with VCS Report features , and sure the plugin will contain all features that VCSreport implements in future as soon as possible.
i made this post because i am looking for some comments from developers who have knowledge about CVS internal mechanism. so if any one from the community have any suggestion , then let me know. I will add it to my ToDo list for future releases , and sure try to use your advice / comments , i will be more happy if my first release has more useability. A Simple Netbeans Module , a Gmail Checker...Posted by kalali on March 04, 2006 at 01:15 PM | Permalink | Comments (0)Some times ago I participate in NetCat 50 - a process for NetBeans IDE version 5 QA -During NetCat I find that NetBeans RCP is something that I can Pick for later Swing based clients. I start learning NetBeans RCP platform during NetCat 50 , and to evaluate my learnings I write a simple Module for NetBeans IDE . The module is a GMail Checker , Module make it possible for you to see your new emails within your IDE and allows you to rotate between subjects. I write Down a Tutorial on building NetBeans Module and as a Case study I showed how user can build GMail checker him/herself. To build that module I used another Open Source project , http://g4j.SourceForge.Net, which is Java library to access GMail service. After installing the module you will see a new toolbar in your IDE , the toolbar will be like following image :
by clicking on toolbar , it will start connection to Gmail. a NetBeans Standard progress bar will show the the progress in IDE bottom line
a NetBeans Standard progress bar will show the the progress in IDE bottom line
after it fetch information from GMail it will show you a something like
which tell you how much new email you have , and how much space of your GMail is occupied Now you can allow GMail Checker to rotate between subjects or do it yourself using provided buttons
You can configure the GMail checker Options trough Its configuration panel which is an standard NetBeans configuration panel. Configuration panel is something like the following image.
I set up an update center for my further NetBeans module , right now , you can check this UC and get your GMail Checker from there. http://www.Solarisict.com/updates.xml If you prefer to install the module from your local drive then , you can download all in one archive which contains all required modules for GMail checker. you can get the source code for GMail checker from NetBeans web site , this archive contain all source code , sound files and images that I used to build this module the link to get the zip archive is here To add a new update center to NetBeans IDE and many other NetBeans Tips and tricks take a look at Geertjan Weblog and for more NetBeans related information look at another big blog , Roumen Weblog | ||||||||||||||||||||||||||||||||||||||||||||||
|
|