Česky   |  Deutsch   |  English   |  Español   |  Français   |  Indonesia   |  日本語   |  한글   |  Polski   |  Português (BR)   |  Türkçe   |  中文   |  正體中文   |  Your Language  
PlanetNetbeans
Planeta Netbeans é uma agregação de assuntos e temas relacionados a NetBeans de todo a esfera de Blogs.
Feeds
[RSS 1.0 Feed] [RSS 2.0 Feed]
[FOAF Subscriptions] [OPML Subscriptions]
Você tem um blog que fala sobre o Netbeans? Adicione seu blog ao PlanetNetBeans!
Inscrição de Feeds

Powered by:    Planet

Last updated:
July 02, 2009 10:50 PM
All times are UTC

sponsored by Sun Microsystems

visit NetBeans website
adourado - June 30, 2009 12:54 PM
Video: introducao Netbeans 6.7

Saiu no Nebeans.tv um video com uma compacta e muito útil introdução ao Netbeans 6.7.

 

Este vídeo não apresenta os novos recursos mais excitantes mas alguns recursos interessantes e desconhecido ate para os mais experientes na IDE. São eles:

  • Produtividade na edição de códigos Java;
  • Auto-Completar;
  • Erros;
  • Criando Configurações;
  • Histórico local de alterações;
  • e Refactoring.

 

Agora chega de papo..

 

 

Assista e comente o vídeo diretamente no no site aqui.

adourado - June 29, 2009 05:39 PM
Netbeans 6.7 Final Liberado para Download

 Após o último post meu sobre o lançamento do Netbeans 6.7 (Netbeans 6.7 RC1 Liberado para Download) saiu duas novas versões Release Candidate em bem pouco tempo, a  RC2 e RC3. Como o lançamento era quase identico, sem novidade alguma, deixei de blogar sobre elas pois sabia que a versão final estava a chegar ao final de junho.

 

 

 

E como prometido, a o pessoal do Netbeans.org liberou a versão final do Netbeans 6.7 dentro do prazo estabelecido. Esta versão conta com diversas novidades em relação a versão estável anterior (6.5.x). Principalmente relacionados a colaboração entre desevolvedores, permitindo a conexão nativa com os projetos Kenai, o Hudson. Segue a relação de recursos anunciados nesta versão:

 

  • NetBeans IDE 6.7 is integrated with Project Kenai, a collaborative environment for developers to host open-source projects.
  • The release also builds on the success of NetBeans 6.5 with native support for Maven; GlassFish, issue tracker and Hudson integrations;
  • and enhancements to Java, PHP, Ruby, Groovy and C/C++.
  • Highlights of the 6.7 release include support for JavaScript 1.7, Ruby Remote Debugging,
  • and integration of the Java ME SDK 3.0.

 

Para ver a demonstração destes recursos assista o screencast  NetBeans IDE 6.7 Overview


Já baixei e já estou utilizando porem como já venho utilizando as versões beta e RC's não percebi grandes mudanças.

 

Para saber mais da nova versão do Netbeans acesse:

Michel Graciano's Weblog - June 29, 2009 02:05 PM
NetBeans 6.7 FCS released

Now it is official, NetBeans 6.7 was just released. For details about this new version, take a look at NetBeans 6.7 release page.
For this version an huge effort about stability and performance was made. I hope you enjoy this release and now it is time to think about 6.8 coming this year yet.

So, if you found any issue at this release please file an issue at Issuezilla and help us to make NetBeans the only IDE you need.

Happy coding!

Controverso eu ? - NetBeans category - June 29, 2009 01:14 PM
NetBeans 6.7 is out

Rapaziada , Saiu o Netbeans 6.7 , estarei testando depois eu reporto uma analise... very good !

Michel Graciano's Weblog - June 16, 2009 06:02 PM
NetBeans 6.7 Release Candidate 3 just released

One more RC was just released by NetBeans team and the FCS is coming soon. For details about this new version, take a look at NetBeans 6.7 release page. So, if you found any issue at this RC release please file an issue at Issuezilla and try to get it fixed as soon as possible.

Good tests!

NetFeijão Brazil - June 09, 2009 09:59 PM
[JavaEE 6] EJB 3.1 no GlassFish V3 e NetBeans


Esta semana saiu nas bancas a edição 31 da revista Mundo Java com o título "Futuro do Java Corporativo", com um artigo meu sobre o mesmo tema.
Para quem quer saber o que vai rolar na próxima especificação do Java EE 6, está edição está um prato cheio, portanto compre uma edição e aproveite...
Não vou entrar em muitos detalhes da matéria, mas vou descrever aqui melhor a demo que está na revista, onde apresento uma aplicação utilizando Session Bean da especificação de EJB 3.1 no GlassFish V3.

Instalando o GlassFish V3 e o conteiner EJB

No site do GlassFish baixe o arquivo zip e descompacte em um diretório da sua escolha, a partir deste momento vamos chamar apenas de GLASSFISH_HOME\bin e execute o updatetool (Figura 1).
Na opção available addons, selecione glassfishv3-ejb e clique em Install, esta ação irá instalar o container EJB no Glassfish.

Instalando o plugin GlassFish V3 no NetBeans

Agora inicie o NetBeans (de preferência a versão 6.1 ou 6.5) e instale o plugin do GlassFish V3 para o NetBeans em Ferramentas | Plugins, selecione em plugins disponíveis "Glassfish JavaEE Integration" e clique em instalar.
Após instaldo o plugin, na aba Serviços, adicione um novo servidor, selecione a opção GlassFish V3 e siga os passos apontando o diretório GLASSFISH_HOME de instalação e finalizar.



Vamos explorar agora uma funcionalidade no NetBeans para a criação de CRUD, crie uma nova Aplicação Web na categoria Web e clique em Próximo.
Neste passo digite "DEMO_EJB31" e clique em Próximo, na opção servidores selecione o servidor GlassFish V3 T2 recém instalado e clique em Próximo. No último passo selecione o framework JavaServer Faces e clique em Finalizar.

Agora vamos criar uma aplicação CRUD completa baseada em uma entidade de banco de dados, para isso clique em Arquivo | Novo Arquivo, na categoria Persistence selecione a opção "Classes de entidade do banco de dados" e clique em Próximo.
OBS: Antes de fazer o passo abaixo, inicie o banco de dados Derby na guia Serviços do NetBeans, clique com o botão direito do mouse em Java DB e clique em "Iniciar Servidor".

Neste segundo passo, na lista Fonte de Dados selecione a opção "Nova Fonte de Dados", no campo "Nome JNDI" digite jndi/TesteEJB e na lista "Conexão de banco de dados" selecione o banco "jdbc:derby://localhost:1527/vir" já existente e clique em OK.

Se tudo ocorreu de maneira correta será apresentada uma lista de tabelas disponíveis. Selecione a tabela Employee, clique em Adicionar e em seguida clique em Próximo.

No campo nome do pacote digite br.com.netfeijao.entities e por fim clique no botão "Criar unidade de persistência". Mantenha os valores default clique em Criar e depois clique em Finalizar. Esta ação irá criar a classe persistente Employee no pacote informado.

Agora vamos utilizar um recurso no NetBeans para a criação de um CRUD com páginas JSF baseado em entidades JPA, no caso a classe Employee que acabamos de criar. Acesse o menu Arquivo | Novo Arquivo, na pasta categoria Persistence selecione "Páginas JSF de classes de entidade" e clique em próximo. Adicione a única classe persistente (Employee) existente (ver figura 1), clique em Próximo e a seguir clique em Finalizar.
Execute a aplicação pressionando o botão F6 e faça testes, perceba que o NetBeans criou uma aplicação completa "a lá Ruby on Rails" com apenas alguns cliques.

public class EmployeeController {
private Employee employee = null;
private List employees = null;
@Resource
private UserTransaction utx = null;
@PersistenceUnit(unitName = "DEMO_EJB31PU")
private EntityManagerFactory emf = null;

public EntityManager getEntityManager() {
return emf.createEntityManager();
}
public int batchSize = 5;
private int firstItem = 0;
private int itemCount = -1;

public SelectItem[] getEmployeesAvailableSelectMany() {
return getEmployeesAvailable(false);
}

public SelectItem[] getEmployeesAvailableSelectOne() {
return getEmployeesAvailable(true);
}

private SelectItem[] getEmployeesAvailable(boolean one) {
List allEmployees = getEmployees(true);
int size = one ? allEmployees.size() + 1 : allEmployees.size();
SelectItem[] items = new SelectItem[size];
int i = 0;
if (one) {
items[0] = new SelectItem("", "---");
i++;
}
for (Employee x : allEmployees) {
items[i++] = new SelectItem(x, x.toString());
}
return items;
}

public Employee getEmployee() {
if (employee == null) {
employee = getEmployeeFromRequest();
}
if (employee == null) {
employee = new Employee();
}
return employee;
}

public String listSetup() {
reset(true);
return "employee_list";
}

public String createSetup() {
reset(false);
employee = new Employee();
return "employee_create";
}

public String create() {
EntityManager em = getEntityManager();
try {
utx.begin();
em.persist(employee);
utx.commit();
addSuccessMessage("Employee was successfully created.");
} catch (Exception ex) {
try {
if (findEmployee(employee.getId()) != null) {
addErrorMessage("Employee " + employee + " already exists.");
} else {
ensureAddErrorMessage(ex, "A persistence error occurred.");
}
utx.rollback();
} catch (Exception e) {
ensureAddErrorMessage(e, "An error occurred attempting to roll back the transaction.");
}
return null;
} finally {
em.close();
}
return listSetup();
}

public String detailSetup() {
return scalarSetup("employee_detail");
}

public String editSetup() {
return scalarSetup("employee_edit");
}

..
}

Listagem 1 - Parte da Classe EmployeeController gerado pelo NetBeans

Perceba que o NetBeans gerou o código de persistencia em uma classe controller, vamos melhorar um pouco isto, tirando o código de acesso aos dados e isolando isto em uma classe DAO, depois vamos transformar esta classe em um EJB sem interface,

OBS> Cuidado, o uso de um EJB DAO deve ser restrito, pois dependendo do seu uso, isso pode ser um Anti-Pattern

Vamos criar uma nova classe Java acessando o menu Arquivo | Novo Arquivo. Nomeie a classe como EmployeeDAO no pacote br.com.mundojava.dao. Nesta classe vamos colocar todos os métodos de acesso ao banco utilizados na classe EmployeeController e inclui-los na classe recém criada. Veja parte do código na Listagem 18.

Vamos criar uma nova classe Java acessando o menu Arquivo | Novo Arquivo. Nomeie a classe como EmployeeDAO no pacote br.com.mundojava.dao.
Adicionalmente vamos criar uma classe para tratamento de Exceptions, crie uma classe e nomeie de DatabaseException, na classe DAO vamos encapsular os erros de acesso a banco nesta classe.

Criada a classe DAO, vamos colocar todos os métodos de acesso ao banco utilizados na classe EmployeeController. Feito isto, transforme esta classe EmployeeDAO em um EJB colocando a anotação Stateless em cima da declaração da classe. Veja parte da classe criada na Listagem 2.

@Stateless
public class EmployeeDAO {

public static final int PROCESSADO = 1;
public static final int JA_EXISTE = 2;
public static final int ERRO = 3;

@PersistenceUnit(unitName = "DEMO_EJB31PU")
private EntityManagerFactory emf;

private EntityManager getEntityManager() {
return emf.createEntityManager();
}

public Employee getEmployeeFromRequestParam(Object employee) {
EntityManager em = getEntityManager();
try{
Employee o = em.merge((Employee) employee);
return o;
} finally {
em.close();
}
}

public int create(Employee employee) throws DatabaseException{
EntityManager em = getEntityManager();
try {
em.getTransaction().begin();
em.persist(employee);
em.getTransaction().commit();
return EmployeeDAO.PROCESSADO;
} catch (Exception ex) {
try{
int opt = 0;
if (getEmployee(employee.getId()) != null) {
opt = EmployeeDAO.JA_EXISTE;
} else {
opt = EmployeeDAO.ERRO;
throw new DatabaseException("A persistence error occurred.");
}
em.getTransaction().rollback();
return opt;
}catch(Exception sup){
throw new DatabaseException("An error occurred attempting to roll back the transaction.");
} finally {
em.close();
}
}
}

public void edit(Employee employee) throws DatabaseException {
EntityManager em = getEntityManager();
try {
em.getTransaction().begin();
em.merge(employee);
em.getTransaction().commit();
} catch (Exception ex) {
try {
em.getTransaction().rollback();
throw new DatabaseException(ex.getLocalizedMessage());
} catch (Exception e) {
throw new DatabaseException("An error occurred attempting to roll back the transaction.");
}
} finally {
em.close();
}
}
...
}
Listagem 2 - Parte da classe EmployeeDAO recém criada.

Fica um desafio para o leitor do blog, criar os métodos
public void destroy(Employee employee);
public List getEmployees(boolean all,
int batchSize,
int firstItem);
public List getEmployees(boolean all,
int batchSize,
int firstItem);
public Employee getEmployee(Integer id);
public int getItemCount();

Por fim, na classe EmployeeController vamos fazer algumas alterações para consumir o EJB sem interface. Primeiro declare uma variável do tipo EmployeeDAO, e vamos injetar com a referência do EJB, e troque todas as referências ao código de acesso ao banco para apontar para o nosso EJB DAO, veja como ficou na classe EmployeeController na Listagem 3.

public class EmployeeController {
private Employee employee = null;
private List employees = null;
public int batchSize = 5;
private int firstItem = 0;
private int itemCount = -1;
@EJB
EmployeeDAO dao;

public SelectItem[] getEmployeesAvailableSelectMany() {
return getEmployeesAvailable(false);
}

public SelectItem[] getEmployeesAvailableSelectOne() {
return getEmployeesAvailable(true);
}

private SelectItem[] getEmployeesAvailable(boolean one) {
List allEmployees = getEmployees(true);
int size = one ? allEmployees.size() + 1 : allEmployees.size();
SelectItem[] items = new SelectItem[size];
int i = 0;
if (one) {
items[0] = new SelectItem("", "---");
i++;
}
for (Employee x : allEmployees) {
items[i++] = new SelectItem(x, x.toString());
}
return items;
}

public Employee getEmployee() {
if (employee == null) {
employee = getEmployeeFromRequest();
}
if (employee == null) {
employee = new Employee();
}
return employee;
}

public String listSetup() {
reset(true);
return "employee_list";
}

public String createSetup() {
reset(false);
employee = new Employee();
return "employee_create";
}

public String create() {
int resultado = dao.PROCESSADO;
try {
resultado = dao.create(employee);
if (resultado == dao.PROCESSADO) {
addSuccessMessage("Employee was successfully created.");
} else if (resultado == dao.JA_EXISTE) {
addErrorMessage("Employee " + employee + " already exists.");
}
} catch (Exception ex) {
ensureAddErrorMessage(ex, ex.getLocalizedMessage());
}
return listSetup();
}

public String detailSetup() {
return scalarSetup("employee_detail");
}

public String editSetup() {
return scalarSetup("employee_edit");
}

private String scalarSetup(String destination) {
reset(false);
employee = getEmployeeFromRequest();
if (employee == null) {
String requestEmployeeString = getRequestParameter("jsfcrud.currentEmployee");
addErrorMessage("The employee with id " + requestEmployeeString + " no longer exists.");
String relatedControllerOutcome = relatedControllerOutcome();
if (relatedControllerOutcome != null) {
return relatedControllerOutcome;
}
return listSetup();
}
return destination;
}

public String edit() {
EmployeeConverter converter = new EmployeeConverter();
String employeeString = converter.getAsString(FacesContext.getCurrentInstance(), null, employee);
String currentEmployeeString = getRequestParameter("jsfcrud.currentEmployee");
if (employeeString == null || employeeString.length() == 0 || !employeeString.equals(currentEmployeeString)) {
String outcome = editSetup();
if ("employee_edit".equals(outcome)) {
addErrorMessage("Could not edit employee. Try again.");
}
return outcome;
}
try {
dao.edit(employee);
addSuccessMessage("Employee was successfully updated.");
} catch (DatabaseException ex) {
String msg = ex.getLocalizedMessage();
if (msg != null && msg.length() > 0) {
addErrorMessage(msg);
}else if (getEmployeeFromRequest() == null) {
addErrorMessage("The employee with id " + currentEmployeeString + " no longer exists.");
return listSetup();
} else {
addErrorMessage("A persistence error occurred.");
}
return null;
}
return detailSetup();
}

public String destroy() {
employee = getEmployeeFromRequest();
if (employee == null) {
String currentEmployeeString = getRequestParameter("jsfcrud.currentEmployee");
addErrorMessage("The employee with id " + currentEmployeeString + " no longer exists.");
String relatedControllerOutcome = relatedControllerOutcome();
if (relatedControllerOutcome != null) {
return relatedControllerOutcome;
}
return listSetup();
}
try {
dao.destroy(employee);
addSuccessMessage("Employee was successfully deleted.");
} catch (DatabaseException ex) {
ensureAddErrorMessage(ex, ex.getLocalizedMessage());
return null;
}

String relatedControllerOutcome = relatedControllerOutcome();
if (relatedControllerOutcome != null) {
return relatedControllerOutcome;
}
return listSetup();
}
...
}
Listagem 3 - Classe EmployeeController refatorada para utilizar o EJB DAO sem interface

Perceba que na expressão "@EJB EmployeeDAO dao" estamos referenciando ao EJB, sem interface para atrapalhar, claro que não é possível criar uma instância utilizando a palavra reservada new ainda, na verdade estamos trabalhando com um proxy, mas se quisermos podemos fazer um lookup utilizando JNDI também.
Vou deixar o restante dos métodos para o leitor resolver, é apenas trocar a referencia pela classe dao conforme os métodos acima.


Compile e faça o deploy, rode a aplicação, se tudo deu certo você irá ver a sua aplicação rodando (ver figura 2) com um EJB sem interface, e o melhor, o EJB está dentro de um arquivo .war, já estamos implementando o empacotamento simplificado.






Veja como ficou o empacotamento do nosso projeto na Figura 3.



Para maiores informações sobre o futuro do Java Corporativo, leia a edição 31 da Mundo Java, que ainda traz ótimos artigos como:

  • EJB 3.1:Conheça as Novidades do Futuro do Java Corporativo.
  • Autor:Wagner Roberto dos Santos
  • Grizzly e Comet - Ajax Reverso com Escalabilidade.
  • Autor: Pedro Cavalero
  • Usando o Mavem para melhorar a Qualidade dos seus Projetos.
  • Autor:Márcio Varchavsky
  • Criando Software mais próximo do Cliente com Domain-Drivgen Design.
  • Autor:Sérgio Lopes
  • Setembro: Mês de Java.
  • Autor:Mauricio Leal
  • Testes de unidades Avançadas com JMock 2
  • Autor:Eduardo Guerra
  • Gerenciamento de Conteúdo Web com OpemCMS -Customização de Sites.
  • Autor:Rodrigo Cunha de Paiva
  • Tirando o Máximo dos Interceptors no Struts2.
  • Autor: José Yoshiriro Ajisaka Ramos
  • Tendências em Foco:Ganhando com Open Source
  • Autor:Cezar Taurion
  • Jogo Rápido
  • Autor:Charbel Symanski e Rodrigo Barbosa Cesar
  • Mundo OO: Requisitos Executáveis com FIT
  • Autor:Rodrigo Yoshima
  • SOA na Pratica:Iniciando Projetos SOA.
  • Autor:Ricardo Ferreira









Diversão Garantida !!!

NetFeijão Brazil - June 09, 2009 09:54 PM
Lançado a versão final do NetBeans 6.0

Com quase um mês de atraso foi lançado oficialmente no dia 03/12/2007 a versão final do NetBeans 6.0, com várias melhorias, para aqueles que serem falaram mal do editor e da performance um recado.. Seus problemas acabaram !!
As mudanças mais significativas foram no editor de texto do IDE, onde podemos destacar.
* Code Completion Inteligente
* Coloração Semântica
* Refactoração Instantânea
* Preview com antes - depois de alteração
* Geração de código como sobrescrita de construtores, equals e hashCode
* Suporte a várias linguagens como Java, Ruby, C/C++, XML, HTML, RHTML, JavaScript, e JSP.

São muitas as novidades no novo IDE, não teria como destacar todas as novas funcs neste post, proponho a você desenvolvedor efetuar o download no site netbeans.org, que agora vem disponível em várias opções de download (figura abaixo).


e explore os tutoriais disponiveis no próprio site em tutoriais.

Ainda falando de NetBeans 6, a última edição da revista mundo java nº 26, foi publicada um artigo meu sobre as novas funcionalidades do NetBeans 6 com enfânse nas mudanças do editor e no desenvolvimento de aplicações Swing com as JSRs 295 e 296 (Beans Binding e Swing Application Framework) a revista ainda possui diversas máterias interessantes com foco em SOA.. sem dúvida uma ótima pedida..

NetFeijão Brazil - June 09, 2009 09:53 PM
NetBeans Platform na Mundo Java nº 29


Este mês saiu nas bancas a revista Mundo Java nº29, um artigo meu sobre a plataforma NetBeans, expliquei as principais classes e funcionalidades, e no final apresentei um tutorial prático de como extender o NetBeans e criar poderosos plugins..
Ainda nesta edição na seção "Eu uso" teve a participação mais que especial do Tim Boudreau, um dos engenheiros e pioneiro na criação das primeiras versões do IDE e do nosso querido Bruno Souza o JavaMan..
Eu mesmo traduzi o artigo do Tim, espero que quem leu tenha gostado.
Com a autorização do Tim, vou publicar o artigo dele na seção "Eu uso", claro, em inglês !!!

I work on the NetBeans Platform. Probably the most gratifying thing about that work is to see how it is used - anybody who creates software wants to see it used - it is what gives our work meaning. In the simplest view, what the NetBeans Platform does is solve problems. I believe in writing software that can be finished. That is, you write something that is solid and right and works and then you can leave it alone and move on to the next problem. The modular nature of NetBeans - indeed, the module system itself - makes it easier to build software out of a lot of libraries each of which does one thing well - and guarantee system integrity at runtime. It solves the DLL hell problem for once and for all, and in the process creates design patterns that are ideal for distributed development - how do you build software created by a large community and minimize the risks that changes to one part of the system will break another? The core beauty of NetBeans is the module system.

But what amazes me more is what people do on top of it. Let's take one case-in-point: Nokia. If you are a mobile service provider, such as Tim in Brazil (no relation :-)), and you buy your hardware from Nokia (your transmitters, the things that make a mobile phone network work), you will need some software to manage that network. If you are buying that hardware from Nokia, you get an application for managing your network. But it's not just one applications - it is many applications and one at the same time. They have used the NetBeans Platform plus Java WebStart technology together in an incredibly innovative way - and because Nokia contributed WebStart support to NetBeans, you can do the same thing for your applications.

Java WebStart is a technology that lets you launch a Java desktop application by clicking a URL. Anybody who has installed Sun's Java has Java WebStart. It's not wildly popular yet, but it is an incredible technology for improving the experience people have with internet-based applications. Why? Because there is only one copy of the software. I once visited a company - actually a software development organization for a state in the U.S. They asked us: "Can you please release new versions less often? Every time you have a new version, some guy has to walk around with a CD-ROM and visit 350 workstations and install it!"

That's crazy, and Java WebStart offers the solution. You click a URL and a desktop application starts - all the benefits of centralized management that you get from web applications, but it's a real desktop application. And when you download a new version, you don't download all the bits - only a diff between what was and what is. It's a darned cool technology.

Now put that together with a modular system like NetBeans, where an application discovers its parts during startup.

With Nokia's NetBeans-based software, it works like this: Imagine you work for a telecom in the mobile phone space. There are a lot of different jobs you might be doing: Some people monitor the network for problems. Some people dispatch physical repair trucks to go fix things. So, if you are using this software, well, you start it by clicking a link on the web. And to even see the link, you had to log in, so the system knows who you are and what you need.

So what happens? You click the link. The server knows who you are and what your job is. The result is that you start up one application - but it is an application with many faces. The server gives you an application which contains those modules you need to do your job - it will be a different set of modules depending on what you do and what you need access to.

Now think about what this does for the people who write this software! In a modular system, you usually do UI in one module and back-end logic in another. The result of all this is that the users have a better experience - they get a UI tailored for their job; and the developers get a better experience: 1. They can write back end logic once and share it for all possible cases, and 2. They don't have to write multiple applications that do variations on the same thing, and that saves a lot of time.

Anybody who is doing a large-scale desktop application should consider the NetBeans Platform; anybody who is considering a suite of related programs that share some logic and diverge in UI would be insane not to consider using it.

I am, of course, biased - I have worked on the NetBeans Platform. The criteria for people who could benefit from it are clear and hard to argue with:
- Anybody doing a multi-window desktop application
- Anybody writing a desktop application that needs to save state on shutdown
- Anybody writing an application with a concept of selection that determines action enablement or similar
- Particularly anybody writing several related applications that share some logic

We've worked very hard to make it easy to try the NetBeans Platform for your application. If you fit, even remotely, into any of the categories above, you could save time, money and effort with it - give it a look.

-Tim Boudreau, 16/12/07

Um agradecimento especial para o Bruno Souza por ter aceitado o convite, para o Tim Boudreau, para o Guapo e o Eduardo Guerra da Mundo Java que vem lutando para manter esta revista com um alto padrão, e claro para você leitor !!!

Se você se interessa por aplicações desktop e tem interesse em saber como funciona a arquitetura por trás do IDE NetBeans, compre essa revista, além deste artigo você vai encontrar nesta edição os seguintes temas..

  • Desenvolvendo aplicações desktop ricas na Plataforma NetBeans.
  • Animações 2D em JavaFX na prática.
  • Binding, Componentes, Customizados e Template de Telas no SwingBeans 1.2.
  • Click Framework.
  • Acesso a Serviços Multimídia em Java ME com SIP-API e IMS.
  • Tendências em foco: Java e o Mundo Web.
  • RSS dinâmico, rápido e fácil com ROME e STRUTS 2
  • Escolhendo uma ferramenta Case Gratuita para modelagem UML.
  • Modelando Transações de Facade a AspectJ.
  • De olho no mercado: Educação continuada de um Desenvolvedor
  • Mundo OO: O Ciclo Ágil de um Dia
E mais , você leva de graça um Poster Mundo Java: Resumão SCJP- Parte III

Diversão Garantida !!!

NetFeijão Brazil - June 09, 2009 09:48 PM
O que podemos esperar do NetBeans 6.1 ?


Foi lançado recentemente o Release Candidate 1 do novo NetBeans 6.1, ao terminar e instalação, a primeira coisa que pude observar foi o aumento extraordinário de performance em comparação com a versão 6.0, esta aproximadamente 40% mais rápido em performance..

Desempenho

Abaixo segue dois prints mostrando o gerenciador de tarefas com o consumo do NetBeans 6.0 (203.736 K) e o NetBeans RC 1 (170.248 K), ainda o consumo é grande, mas com certeza já é uma grande melhoria.


Consumo de memória no NetBeans 6.0

Consumo de memória no NetBeans 6.1 RC.1



Entre as melhorias foram feitas diversas otimizações para redução do I/O e acesso ao disco, essa é a grande mágica que tornou a resposta muito mais rápida, principalmente em ambientes de rede. Foi alterado também o algoritmo para o parsing incremental no editor Java e JSP, aumentando a velocidade na resposta do auto completion, para este último foram feitas alteração no caching, gerenciamento de memória e nos algoritmos de alteração.
Outro recurso que consumia muito recurso da máquina era o pacote Visual Web, quem baixar a nova versão
irá notar uma grande diferença na abertura das páginas, menor consumo de memórias entre outras melhorias...


Biblioteca Compartilhada

Outra novidade bacana são as novas bibliotecas compartilhadas, antes se eu tinha que compartilhar bibliotecas em um ambiente multi usuário, isso só seria possível se eu criasse um projeto NetBeans Platform e "amarrasse" a biblioteca que criei a um Java SE Library Descriptor, e distruibui-se como um nbm, mas como poucos conhecem as funcionalidades do NetBeans Platform, isso se tornou uma prática pouco comum, na nova versão para utilizar uma biblioteca compartilhada basta no momento da criação do projeto (web, enterprise, java desktop) utilizar a opção "Use Dedicated Folder for Storing Libraries" ao clicar nessa opção, o projeto irá incluir as libraries no classpath.
















Para projetos antigos, é possível incluir as bibliotecas compartilhadas, para isso entre nas propriedades de um projeto, na categoria "Libraries" e clique no botão Browse... em Libraries Folder, basta escolher a pasta onde estão armazenadas as libs e clicar em Next, neste passo (Actions) é possível definir o comportamento das libs armazendas, podemos copiar as os arquivos jar para uma nova pasta de libraries (opção default), podemos utilizar o caminho relativo para os arquivos Jar, podemos utilizar o caminho absoluto para os arquivos Jar, ou utilizar a pasta selecionada mesmo.










































JavaDoc



Outra boa novidade é o suporte as tags do JavaDoc, quem é que nunca tentou o auto complete em um comentário, pois bem , agora isso é possivel.



AutoComplete em JavaDoc para classe



AutoComplete em JavaDoc para método.


Suporte ao MySQL

Desde que a Sun comprou a MySQL o suporte a este banco de dados no NetBeans só vem aumentando, na versão 6.1 já existe uma infra pronta para o MySQL, se você já possui um servidor do MySQL instalado basta registrar o servidor acessando a tab services e clicar com o mouse em cima de Database, e selecionar a opção "Register MySQL Server"(foto abaixo),e preencher o formulário, perceba que é só indicar o caminho da ferramenta de administração do MySql, que é possível dentro do NetBeans abrir e acessar a ferramenta de adminstração, mais facilidades na criação de novos bancos, ...





Registrar um servidor existente e configuração de Admistrator Tool

Editor de JavaScript

Outra ótima novidade são as diversas melhorias no editor de JavaScript, na verdade, todos os beneficios do novo editor do NetBeans 6.0 / 6.1 foram implementados no editor JavaScript, ainda de quebra é disponibilizado a documentação baseada no arquivo javascript.. Perfeito !!


Na nova versão ainda foram disponibilizadas diversas novidades como novos os componentes na biblioteca Ajax (WoodStock), melhorias em Ruby, e finalmente um Suporte ao framework Spring, entre outras novidades..

Baixe a nova versão no site netbeans.org ..

Esse post é para integrar o concurso de blog do NetBeans, no link http://www.netbeans.org/competition/blog-contest.html


Diversão Garantida !!!

NetFeijão Brazil - June 09, 2009 09:45 PM
Diamond Powder for NetBeans

Last year, i have created a NetBeans plugin to an interesting framework, called Diamond Powder, it was developed by a friend of mine, Renato Bellia .
To explain what Diamond Powder is, i´ve extracted a briefly introduction from his blog,

What is it ?

It's a Java ME framework to quickly build data collector forms. Further, it is able to manage the persistence of collected data into RMS records.

Data Collector ?

It is about user input.

Suppose you develop a MIDP application that helps car drivers to maintain records about fuel consume in his/her car: The driver stops by at the gas station and gets his mobile device to take note about odometer value, supplied fuel amount , price of fuel, gas station name, and the current date. Later on the driver needs to recover such data. This is a data collector, and Diamond Powder can help you to do so.

Your MIDP application could go further, doing some math with such data, plotting charts, sending it over the internet and the like, but this is up to you.

How does it work ?

Read this step-by-step and the glossary bellow:
  1. Define a Schema
  2. Create a Collector suppling with a display, a schema and a flow name
  3. Add regular LCDUI commands to the collector
    1. at least an OK Command, and a BACK Command
    2. other Commands can be provided
  4. Swicht the MIDlet display to the Collector
  5. At the end of Colletor´s job you may persist collected data with a StorageManager.
Glossary:

term

definition

Schema

A Hashtable that describes the data collector fields, and its organization.

A schema contains a name, a version number, and at least one Flow.

Flow

A sequence pages that the application user can browse through.

Page

A top level field container, to display to the user, as a data collector step.

Can be reused among flows.

Can be associated with a help screen.

Field

Regular LCDUI items: StringItem, TextField, DateField, ChoiceGroup

+ Filter : a special component to deal with huge ChoiceGroups

Collector

A collector manages the display of a Flow of Pages, and gathers all user input.

It extends LCDUI Form.

StorageManager

It is the Diamond Powder persistence component.

It helps to preserve user input data gathered by a Collector into RMS records.

It also helps to restore a Collector with previously saved RMS records.


NetBeans Plugin

Now, it´s time to talk about my collaboration in this project, if you get a look at this framework, you will realize that it simplifies a lot the development of a data collector on java me.

On the other hand, the heart of the framework, the "Schema", as stated in the glossary, it is a Hashtable that describes the data collector fields, flow, name and version of your application. Let´s see on listing 1, a snippet of the schema code from the hello world example, extracted from diamond powder blog.
public Hashtable getSchema() {
Hashtable schema = new Hashtable();

//schema declaration: name;version
schema.put("schema", "fuelControl;2");
//flow declaration: page1;page2;...
schema.put("flow.basicRecord", "numbers;extra");
//page declaration: title;field1;field2;...
schema.put("page.numbers", "The Numbers;date;odometer;fuelAmount;fuelPrice");
schema.put("page.extra", "Gas Station;gasStationName;gasStationBrand");
//help for page: help text
schema.put("help.numbers", "Enter the odometer mark, the supplied fuel amount and the fuel price");
schema.put("help.extra", "Enter the gas station name and brand");

//text field declaration: field type;label;size;mask
schema.put("field.odometer","textfield;odometer;6;numeric");
schema.put("field.fuelAmount","textfield;fuel amount;5;decimal");
schema.put("field.fuelPrice","textfield;fuel price;5;decimal");
// dateField;label;{date|time|date_time}"
schema.put("field.date","datefield;when;date_time");
schema.put("field.gasStationName","textfield;gas station;40;initial_caps_word");

//choice gorup declaration: field type;label;list model;mode
schema.put("field.gasStationBrand",
"choicegroup;brand;allBrands;exclusive");
//list model declaration: value1;label1;value2;label2;...
schema.put("listmodel.allBrands",
"999;undefined;1;Atlantic;2;Chevron;3;Esso;4;Texaco");

return schema;
}

Listing 1: Schema method example.

As you can see in the example, it can be a problem if you want a more complex application, as your schema evolves it can became inconvenient and error-prone, as you add more fields, or even new pages.
Diamond Powder for NetBeans it´s a plugin, that comes to fill this gap, and helps to create a Schema code, avoiding spelling error in variable names. Now let´s see how to install it.

Download and Installation

To install Diamond Powder for NetBeans, you can visit plugin Portal on NetBeans website, or you can download it directly from java.net site project. The easiest way to download it, is directly from NetBeans,
To install DP from NetBeans, select "Tools > Plugins", open the Setting category and click Add button, in Name field enter "Diamond Powder", and URL enter "https://diamond-powder.dev.java.net/files/documents/9072/108868/updates.xml", and click OK to create a new Update Center source.

Figure 1: Configuration of Update Centers.

Now, to install the plugin, select "Available Plugins" category and install the Diamond Powder plugin, during instalation it will generate a warning, stating that the module is not signed, but it´s ok..

Generating the Schema
There are two ways to create a schema, creating a new file, selecting "New File > MIDP > Diamond Powder - Schema Generator" from a Java ME Project, or you can invoke Diamond Powder wizard from the source code editor, selecting menu popup "Refactor > Diamond Powder - Schema Generator"..

Figure 2: Creating a new Schema file

Start by creating a Diamond Powder Schema file, as shown in Figure 3. Let´s create the schema defined in listing 1, so name the schema "fuelControl", set version 2 and click next to go the panel shown in Figure 4:
Figure 3: Naming the Schema file.

Here we can define our application fields, , let´s define the odometer, fuelAmount, fuelPrice, date, gasStationName and gasStationBrand. Note, that for gastStationBrand is a choicegroup field, to define our list values, click the Editor button, and create the list model defined in Figure 5.

Figure 4: Fields Configuration

Enter "allBrands" to List Model and click New Button, to include a value to the allBrands list model, select it in the list and click Add button, to cancel an item just click cancel, and to finish it, close the window.

Figure 5: List Model editor.

In the Pages Configuration step, let´s create our pages number and extra adding the related fields and entering the properly information like page name, title and help, like Figure 6.

Figure 6: Pages Configuration.


Click Next to our final step, now we going to define the sequence pages that our application will browse through. Enter basicRecord for Flow Name, and add the two pages created earlier (Figure 7).
Check the "Save to File?" option and click browser, this option will persist all fields created to an user defined file.

Figure 7: Flow Definition.

Note: You can retrieve these values, loading the file in the Fields Configuration step (see Figure 4).

Click Finish to generate the schema class. After generation, you should see the Java class, Schema, in the hello.schema package.

References:
Diamond Powder (java.net): https://diamond-powder.dev.java.net/
Diamond Powder Blog: http://diamond-powder.blogspot.com/
NetBeans Plugin: http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=17094
NetBeans: http://www.netbeans.org/

Try it !!

Michel Graciano's Weblog - June 06, 2009 11:00 AM
Help us to make NetBeans the only IDE you need...

As I blogged yesterday NetBeans 6.7 RC2 was just released and now is time to see how stable it is. My friend Jiri Kovalsky, NetBeans Technical Community Manager, asked community to fill the final survey about NetBeans 6.7 RC2 acceptance to make sure the IDE quality is acceptable for community. So, see below the entire message about it and help us to make NetBeans the only IDE you need.

Regards

Hello NetBeans community,

NetBeans 6.7 Release Candidate 2 has been released today and we believe it's the right time for the final Community Acceptance survey [1]. The essential purpose of this research is to find out if you - NetBeans community members - accept the latest RC build as ready for FCS or not.

[1] http://qa.netbeans.org/processes/cat/67/ca_survey.html

Hence I would like to ask everyone who already used the RC2 (*) to login to netbeans.org site and take this short survey. It will be open until Thursday - June 18th midnight last timezone. In spite of that please complete the survey as soon as you gain a solid opinion about the RC2.

(*) Please don't judge RC1 in the survey. Take RC2 instead because it contains one significant performance improvement.

Thanks for your feedback,
--
Jiri Kovalsky
NetBeans Technical Community Manager
http://www.netbeans.org

Michel Graciano's Weblog - June 05, 2009 06:16 PM
NetBeans 6.7 Release Candidate 2 just released

We are almost there again... One more release is coming soon and the RC2 was just released. For details about this new version, take a look at NetBeans 6.7 release page. So, if you found any issue at this RC release please file an issue at Issuezilla and try to get it fixed at RC3.

Good tests!

adourado - June 02, 2009 03:59 PM
Netbeans 6.7 RC1 Liberado para Download

A versão final do Netbeans 6.7 está cada vez mais próximo. Ontem saiu o primeiro release candidate da versão. Ou seja, o primeiro candidato a ser versão final. 

 

Já baixei e já estou utilizando porem não percebi grandes mudanças da versão Beta para RC1 apenas algumas correções.

 

Pegando carona com o anúncio, segue o link para um tutorial ensinando a criar um projeto Kenai usando um dos grandes novos recursos do Netbeans 6.7. Veja aqui: Creating a Kenai Project in NetBeans IDE 6.7

 

Para saber mais da nova versão do Netbeans acesse:


 

Para download: http://download.netbeans.org/netbeans/6.7/rc/

Silveira Neto » netbeans - May 16, 2009 11:53 AM
JavaFX 1.1 for Linux workaround

Download

javafx4linux.tar.bz2 (~ 36Mb).

Installing

1) Extract the javafx4linux.tar.bz2 file. In this example I’m placing it on my Desktop. After the installing process you can remove it.

javafx linux ubuntu extract

2) Open your NetBeans 6.5 and go at ToolsPlugins and go to Downloaded tab. In a plain and new NetBeans installation there will be no plugin in this tab yet.

netbeans javafx linux step01

netbeans javafx linux step02

netbeans javafx linux step03

3) Click on the Add Plugins button and head to the directory you extracted the file and select all .nbm files.

netbeans javafx linux step 04

4) You will see a list of 22 plugins selected. Click on the Install button.

netbeans javafx linux step 05

5) Just keep clicking on the Next button.

netbeans javafx linux step 6

6) Check the license agreement accept box.

netbeans javafx linux step 7

7) You’ll see a warning because the Linux pluggin is not signed. Don’t worry, just click Continue.

netbeans javafx linux step 8

8) Click on Finish to restart NetBeans.

netbeans javafx linux step 9

9) Now we can test it. Go at FileNew Project, select the JavaFX on Categories and JavaFX Script Application on Projects.

netbeans javafx linux step 10

10) Put some code and run it. There is. JavaFX on Linux.

netbeans javafx linux step 11

Considerations

This is not a official of JavaFX for Linux! This solution was tested on Ubuntu 9.04 “Jaunty Jackalope” with Java 6 update 13 and NetBeans 6.5.1, but should also work with others Linux distributions and Java versions greater than 5.

Known bugs

As a non official workaround for JavaFX for Linux you may notice some drawbacks. Some parts of the JavaFX runtime rely on native implementations on the specific operational system. You may not use some multimedia capabilities as video playback, JavaFX Mobile emulator and some performance issues in some effects. Despite that, is perfectly possible to develop applications using JavaFX on NetBeans.

Thanks

I’d like to thanks some guys around the world. Weiqi Gao’s original post on JavaFX on Linux, HuaSong Liu article on DZone and Kaesar Alnijres post.

adourado - May 11, 2009 04:49 PM
Netbeans 6.7 Beta Liberado para Download

Foi lançado a alguns dias a versão beta do Netbeans 6.7.


Já falei um pouco dessa versão em "A próxima versão do Netbeans". Mas como de costume está cheia de novidades e melhorias. Mas para mim, o grande destaque é a integração com serviços/sistemas on-line como o Kenai e o Bugzilla.

 

Outra coisa que me chamou bastante atenção foi os recursos relacionados Ruby on Rails e Grails. E como começei a fazer alguns estudos neles percebi bastante as melhorias feitas nesta nova versão.

 

Para mais detalhes do lançamento visite:

 

 

Para download: http://download.netbeans.org/netbeans/6.7/beta/

 

adourado - April 13, 2009 01:08 PM
Lancado nova versao do plugin ZK para Netbeans REM

O desenvolvimento do REM, plugin de desenvolvimento ZK para Netbeans, esta muito ativo e em pouco tempo depois do lançamento da versão 2.0.3 lançam a nova versão 3.0.1.

 

As novidades desta versão que merecem destaque: 

 

  1. Melhorias no editor ZUL e de sua paleta de componentes;
  2. Versão do ZK atualizada e funcionando tanto no Netbeans 6.5 quanto no Netbeans 6.7;
  3. Melhorias nos templates de projetos;
  4. E muitos outros recursos.

 

Baixe aqui e agilize o desenvolvimento de suas aplicações ZK.

 

Para maiores informações veja o anuncio oficial.

Paulo Canedo » NetBeans pt_BR - April 08, 2009 05:00 PM
NetBeans dicas(1) - netbeans.conf

O NetBeans possui um arquivo que serve para definir algumas configurações, como por exemplo tamanho de fonte, opções da JVM, diretório do usuário, definir um lookandfeel, etc. Esse arquivo chama-se netbeans.conf e pode estar em dois diretórios diferentes:

  • na pasta $NB_INSTALL/etc/netbeans.conf que indica configurações para qualquer usuário, configuração global
  • na pasta $USER_DIR/etc/netbeans.conf que indica configurações para o usuário atual do sistema

O arquivo netbeans.conf possui as seguintes entradas:

netbeans_default_userdir
Local onde se indica a variável userdir (Só funciona para configuração global, motivo óbvil, rs..)
netbeans_default_options
Pode-se passar qualquer parâmetro para a JVM, como por exemplo: configurações de memória, opções de depurador, tamanho da fonte (–font-size), look and feel, etc.
netbeans_jdkhome
Local onde o NetBeans vai buscar o JDK padrão.
netbeans_extraclusters
Clusters adicionais para que o NetBeans possa utilizar.

Exemplo de uma entrada modificada:
netbeans_default_options=”-J-Dorg.glassfish.v3.installRoot=\”/home/paulocanedo/Programas/glassfish-v3-prelude\” -J-Dcom.sun.aas.installRoot=\”/home/paulocanedo/Programas/glassfish-v2ur2\” -J-client -J-Xverify:none -J-Xss2m -J-Xms128m -J-XX:PermSize=64m -J-XX:MaxPermSize=1000m -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true –laf Nimbus

Este exemplo basicamente altera o lookandfeel para o Nimbus e faz algumas modificações nas configurações de memória da JVM.

Referências:

<http://wiki.netbeans.org/FaqNetbeansConf>

<http://docs.sun.com/source/817-2180-10/pt_chap5.html>

adourado - April 06, 2009 12:28 PM
Ganhe ate 25,000 dolares criando aplicacoes JavaFX com o Netbeans 6.5

Se você é um desenvolvedor profissional ou estudante, chegou a hora de faturar uma graninha extra desenvolvendo aplicações JavaFx 1.1 com o Netbeans 6.5 na nova competição de códigos JavaFX Coding Challenge.


Baixe o JavaFX 1.1, use seu talento e criatividade para projetar e desenvolver uma aplicação JavaFX vencedora e ganhar $25.000.



Não é obrigatório o uso do Netbeans, mas porque não utilizar o Netbeans 6.5 para desenvolver a aplicação? O Netbeans 6.5 é a ferramenta recomendada para criar, testar, depurar e implantar aplicações JavaFX. Pense nisso, eu recomendo!! :)



Tenha pressa e se inscreva já, a competição teve início no dia 23 de março e você poderá enviar seu projeto até 29 de maio de 2009. O jugamento será feito no mês de Junho e o seu resultado divulgado no dia 29 de Junho.

Além dos $ 25.000 para a aplicação vencedora, existem outras premiações:

  • O segundo lugar ganhará $ 10.000;
  • O terceiro lugar ganhará $ 5.000;
  • E caso você seja estudante, os três primeiros lugares ganharão $1.500.

 

Para inscrição e mais detalhes acesso aqui.

NetFeijão Brazil - March 25, 2009 02:11 PM
CodeGen - hashCode() e equals(Object) no Netbeans 5.5.1

Só agora que na nova versão do NetBeans 6.0 é que é possível na IDE criar os métodos equals() e hashCode(Object), o que na verdade é uma mão na roda para muitos desenvolvedores, encontrei alguns desenvolvedores como Vinicius Senger da Globalcode e Jefferson Prestes do time de tradução que me disserem que abriam o eclipse apenas para utilizar o recurso de criação destes métodos....
Pensando nisso, como fazia um tempo que não mexia na plataforma netBeans, decidi criar um plugin para a comunidade e de quebra relembrar as APIs da plataforma.
E o plugin faz justamente isto, gera os métodos equals e hashCode baseados nos campos da classe que esta em foco no editor, o método criar os métodos respeitando o contrato de implementação.

Onde o contrato nos diz que para implementar uma relação equivalente em referencias de objetos não nulo o método:

  • É reflexivo: para qualquer valor de referencia not null para x, x.equals(x) deve retornar true.
  • É simétrico: para qualquer valor de referencia not null para x e y, x.equals(y) deve retornar true se e somente se y.equals(x) retornar true.
  • É transitivo: para qualquer valor de referencia not null para x, y, e z, se x.equals(y) retornar true e y.equals(z) retornar true, então x.equals(z) deve retornar true.
  • É consistente: para qualquer valor de referencia not null para x e y, multiplas invocações de x.equals(y) consistentemente retornarão true ou consistentemente retornarão false.
  • Para qualquer valor de referencia not null para x, x.equals(null) deve retonar false.

Como não poderia deixar de ser, temos que seguir um contrato para seguir hashCode que é:
  • Sempre que for invocado no mesmo objeto mais de uma vez durante a execução de uma aplicação Java, o método hashCode deve sempre retornar o mesmo integer.
  • Se dois objetos são iguais de acordo com a execução do método equals(Object), então chamar o método hashCode em cada um dos dois objetos deve produzir o mesmo resultado inteiro.
  • Não é obrigado que se dois objetos são diferentes de acordo com a execução do método equals(Object) que chamando o método hashCode em cada um dos dois objetos deve produzir resultados inteiros distintos. Entretanto, o programador deve ter cautela, pois produzir resultados inteiros distintos para objetos diferentes podeve causar problemas de performance ao utilizar hashtables.
Essas são as regras para se implementar equals(Object) e hashCode(), além de seguir estas regras o plugin segue a espeficação de Joshua Bloch para a implementação destes métodos no livro Effective Java. Portanto talvez você pode achar a implementação bem similar a forma do eclipse produzir estes métodos.
Segue abaixo alguns screenshots do plugin. O plugin esta internacionalizado, disponivel para inglês e português.
Para instalar o plugin efetue o download do arquivo nbm no portal de plugin do netbeans clicando aqui.
Após instalar o nbm espere enquanto o netBeans faz um "hot deploy", após a instalação, para utilizar o plugin, no editor de um arquivo java basta acessar o menu Refatorar > Implementar hashCode() e equals(Object) ou clicando com o botão direito do mouse e acessando o menu pop up Refatorar > Implementar hashCode() e equals(Object).

Após pressionar o botão será apresentado uma JDialog disponibilizando as fields que você deseja implementar nos métodos.



Após pressionar ok, pronto o código esta pronto =) ,, fácil não.. Eclipse para que ? hehe

E ele até que é esperto, se você tentar criar os métodos em uma classe que já possui os métodos, o plugin dá mensagem.


Se sua classe tiver só a classe equals e quiser só o hashCode por exemplo, ele é bem compreensivo..

Bom é isso, esse é um plugin bem simples, mas que ajuda muito no dia a dia.. peço aos meus queridos amigos que baixem este plugin e testem, se tiver dúvidas ou sugestões, é só avisar.

NetFeijão Brazil - March 25, 2009 02:10 PM
Yahoo! Hack Day 2008 Brasil - Bridging The Gap

In this weekend, we have celebrated the first Yahoo! Open Hack in Brazil, it was a great party in fact, the lunch was great, people were taking there time and having fun !!

I can consider myself a luck guy, i was invited to join the Globalcode Team, with my friends Vinicius Senger, Yara Senger, Eder Magalhães, Rafael Nunes, Pedro Germano, and a couple of Globalcode classmates =) ..


Caption: NetBeans plugin presentation





We have divided the work into team groups and as a result we have produced FOUR incredible hacks, yes man, i said four great hacks.. See below:
---------------------------------------------

  1. NetBeans Plugin for Yahoo! Blueprint
  2. JSF Renderkit for Yahoo! Blueprint
  3. Mobile Planning Poker for distributed Teams
  4. Supercrud Mashup for Flickr








Caption: Eder presenting the Planning poker mobile



Obviously, my participation was related to the NetBeans plugin development =), it provides a template for Yahoo Blueprint Web Project, a sample application for Yahoo Blueprint, a JBlueprint librarie that encapsulates the Yahoo! Blueprint' API components (developed by Eder Magalhães), some Help Documents, an Update Center and the Developers Guide pdf file inside NetBeans.. =)




Caption: Award on "Bridging the Gap" Category

Our subject wasn't the prize only, our real intention was to build something useful for Java Developers, and make the work with Yahoo APIs easier with the NetBeans plugin and JSF Renderkit, we are planning open the code on java.net soon and attract new developers to this great platform. so stay tunned for more details !!!

Caption: Globalcode "Super" Team



Caption: Globalcode Team and some friends from São Carlos


Congratulations for all the winners. It’s really amazing to see these great and wonderful work .. you are the best !!

See more details at Yahoo! Developer Network blog by Chris Heilmann




Caption: NetBeans Plugin Presentation


One of the best moments, was the Puff Hacking Video,, see for yourself


Puff Hacking from fczuardi on Vimeo.


Cheers, and we see you again next year !!!!

adourado - March 25, 2009 10:49 AM
Lancado o REM 2.0.3 - IDE ZK para Netbeans

 A muito tempo venho acompanhado o framework ajax ZK e sua IDE ZK Studio para Eclipse aqui no blog.

 

Mas hoje venho postar o lançamento do REM o plugin para desenvolvimento ZK com o Netbeans. Ele já foi comentado por alguns blog como é o caso do JavaBahia que postou alguns tutoriais explicando como utiliza-lo.

 

Atualmente o  REM esta na versão 2.0.3 e apesar de nsão esta como o ZK Studio ele já se propôs a fazer muita coisa. Entre elas:

 

  • ZUL editor agora com uma paleta de componentes onde você pode mover (drag) os componentes para o código;
  • Bibliotecas do ZK atualizada para a ultima versão 3.6.0;
  • Inclusão de dois templates de projetos;
  • E muitos outros recursos.

 

Se você utiliza o Netbeans  para desenvolvimento ( Parabéns! :) ) agora você tem uma alternativa de qualidade para desenvolvimento ZK.


Aproveitando o lançamento, segue a lista de alguns tutoriais feito pelo blog javadude para você aprender como usar ZK com o Netbeans usando o REM.


Getting started with ZK and Netbeans

Tutorial: Reading from the DB with Netbeans and ZK

Tutorial: Reading from the DB with Netbeans and ZK (Part 2)


adourado - March 19, 2009 02:23 PM
Screencasts de Exemplos JavaFX no Netbeans

Saiu no Netbeans.tv 5 screencasts demonstrando o uso do JavaFX com o Netbeans através de exemplos.

 

São eles:

 

 

Você também poderá acessar todos os vídeos em uma unica página aqui.

adourado - March 18, 2009 10:56 AM
Liberado NetBeans IDE 6.5.1

O Netbeans Team liberou uma nova versão do Netbeans, a versão 6.5.1 que chega com algumas mudanças mesmo antes da versão 6.7 que esta planejada para junho de 2009 e já foi liberada para o NetCAT 6.7 program.

 

Esta atualização possui:

 


A atualização é bem simples, é só clicar no globo que aparece no canto inferior esquerdo da tela, na barra de status, ir na aba de atualização e  confirmar seguir os passos da instalação. Caso não tenha aparecido um globo basta você ir no menu Ferramentas --> Plugins.


Ou baixar em Download NetBeans 6.5.1.

 

Veja mais em: 

Controverso eu ? - NetBeans category - March 16, 2009 07:17 PM
NetBeans 6.5.1 Disponível para Download

Nova versão do netbeans 6.5 , na verdade é uma versão entupida de correções. Baixem via UPDATE CENTER ou pelo site do netbeans mesmo...

adourado - March 10, 2009 10:46 AM
A proxima versao do Netbeans

Apesar da próxima ter sido anunciada como a 7.0 com até a liberação de um milestone com essa versão, a próxima versão do Netbeans programada para Junho de 2009 não será 7.0 e sim 6.7.

 

A equipe do Netbeans minimiza a quantidade de lançamentos e preferem acumular novos recursos e melhorias fazendo poucos lançamentos com muitas novidades. Com isso eles tem a meta de fazer dois grandes lançamento por ano.

 

A próxima versão do Netbeans mantém uma grande compatibilidade com a versão atual (6.5) e por este motivo eles optaram em criar uma versão intermediaria entre o 6.5 e o 7.

 

O salto da versão 6.5 para 6.7 deve-ser a associação ao número do capeta / besta (666). Acredite, muitas pessoas acreditam que este número é de azar e com isso a equipe do Netbeans não queriam esse tipo de associação negativa a suas futuras versões 6.6...6.

 

Depois da mudança de número a nova versão encontra-se no segundo milestone e já pode ser baixado aqui.

 

Umas das grandes novidades desta versão é integração com o Maven e o Kenai. Mas também merecem destaque:


  • Melhoria no Desempenho  ( "Ergonomic IDE" )
  • Reforço da Auto-Diagnóstico ( "Perfil Me Now!" )
  • Melhorias no SVG em Mobility
  • Profiler
  • Melhorias para C++ - Matheus Lima publicou o post "Algumas novidades do NetBeans 6.7 C/C++" em seu blog.
  • Novo e melhorado Mac OS X Look-and-Feel

 

Para maiores informações visite

 

Silveira Neto » netbeans - March 02, 2009 02:31 AM
Arduino and Java

Arduino

Arduino is a free popular platform for embedded programming based on a simple I/O board easily programmable. Interfacing it with Java allow us to create sophisticated interfaces and take advantages from the several API available in the Java ecosystem.

I’m following the original Arduino and Java interfacing tutorial by Dave Brink but in a more practical approach and with more details.

Step 1) Install the Arduino IDE

This is not a completely mandatory step but it will easy a lot our work. Our program will borrow some Arduino IDE libraries and configurations  like which serial port it is using and at which boud rate. At the moment I wrote this tutorial the version of Arduino IDE was 0013.

Step 2) Prepare your Arduino

Connect your Arduino to the serial port in your computer. Here I’m connecting my Arduino with my laptop throught a USB.

Arduino

Make sure your Arduino IDE is configured and communicating well if your Arduino. Let put on it a little program that sends to us a mensage:

void setup(){
  Serial.begin(9600);
}
 
void loop(){
  Serial.println("Is there anybody out there?");
  delay(1000);
}

Step 3) Install RXTX Library

We will use some libraries to acess the serial port, some of them relies on binary implementations on our system. Our first step is to install the RXTX library (Java CommAPI) in your system. In a Debian like Linux you can do that by:

sudo apt-get install librxtx-java

Or using a graphical package tool like Synaptic:

installing rxtx

For others systems like Windows see the RXTX installation docs.

Step 4) Start a new NetBeans project

Again, this is not a mandatory step but will easy a lot our work. NetBeans is a free and open source Java IDE that will help us to develop our little application. Create a new project at File → New Project and choose at Java at Categories and Java Application at Projects.

netbeans new project

Chose a name for your project. I called mine SerialTalker.

name your project

At the moment I wrote this tutorial I was using Netbeans version 6.5 and Java 6 update 10 but should work as well on newer and some older versions

Step 5) Adding Libraries and a Working Directory

On NetBeans the Projects tab, right-click your project and choose Properties.

libraries

On the Project Properties window select the Libraries on the Categories panel.

Netbeans project libraries

Click the Add JAR/Folder button.

arduino directory

Find where you placed your Arduino IDE installation. Inside this directory there’s a lib directory will some JAR files. Select all them and click Ok.

jars libraries

As we want to borrow the Arduino IDE configuration the program needs to know where is they configuration files.  There’s a simple way to do that.

Still in the Project Properties window select Run at Categories panel. At Working Directory click in the Browse button and select the directory of your Arduino IDE. Mine is at /home/silveira/arduino-0013.

Working directory

You can close now the Project Properties window. At this moment in autocomplete for these libraries are enable in your code.

netbeans autocomplete

Step 6) Codding and running

Here is the code you can replace at Main.java in your project:

package serialtalk;
 
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.InputStream;
import java.io.OutputStream;
import processing.app.Preferences;
 
public class Main {
    static InputStream input;
    static OutputStream output;
 
    public static void main(String[] args) throws Exception{
        Preferences.init();
        System.out.println("Using port: " + Preferences.get("serial.port"));
        CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier(
                Preferences.get("serial.port"));
 
        SerialPort port = (SerialPort)portId.open("serial talk", 4000);
        input = port.getInputStream();
        output = port.getOutputStream();
        port.setSerialPortParams(Preferences.getInteger("serial.debug_rate"),
                SerialPort.DATABITS_8,
                SerialPort.STOPBITS_1,
                SerialPort.PARITY_NONE);
        while(true){
            while(input.available()>0) {
                System.out.print((char)(input.read()));
            }
        }
    }
}

Now just compile and run (with your Arduino attached in your serial port and running the program of step 2).

voillá

There is. Now you can make your Java programs to talk with your Arduino using a IDE like NetBeans to create rich interfaces.

adourado - February 17, 2009 05:49 PM
Eleja o novo governador do Netbeans

Esta no ar e já pode ser votada a eleição do governador Netbeans 2009.

 

Este ano estão participando:

 

  • Toni Epple
  • Ryan de Laplante
  • Fabrizio Giudici
  • Tonny Kohar
  • Kristian Rink
  • Tom Wheeler

 

Para conhecer os candidatos acesse aqui.

 

A votação acaba a meia noite do dia 02 de março e o resultado será divulgado no dia 09 de março.

 

Para votar é bem simples, basta ter uma conta no netbeans.org, acessar a página NetBeans Governance Board Elections e escolher 3 candidatos.

 

Para saber mais acesse o anúncio oficial.

adourado - February 13, 2009 11:35 AM
Teste comparativo das melhores IDEs PHP

O site www.smashingmagazine.com publicou um artigo de Alexander Makarov  no qual ele faz um teste comparativo nas principais IDEs para PHP. 

 

E o Netbeans IDE 6.5 não poderia esta de fora. :)


"Todo mundo quer ser mais produtivo, cometer menos erros e escrever bom código. Claro, que tudo depende de você, mas na maioria dos casos, ambientes de desenvolvimento integrado (IDEs) pode ajudá-lo a atingir esses objetivos mais facilmente. Infelizmente, escolher uma IDE é muito difícil, porque diversos fatores devem ser considerados. E em todos os sites se auto intitula a melhor IDE.

 

Neste post, vamos ter um olhar mais atento sobre as mais populares PHP IDEs, explorando as suas funções, comparando-os em uma tabela e mostrar algumas conclusões. Esperançosamente, você vai ter uma idéia do que cada um PHP IDE tem para oferecer e que uma melhor se adapta às suas necessidades."

 

 

Leia o artigo completo

adourado - February 12, 2009 04:12 PM
JavaFX SDK 1.1 Now Available and in NetBeans IDE 6.5!

O JavaFX SDK 1.1 acaba de ser liberado e esta versão traz as aplicações JavaFX para os dispositivos móveis. E agora suporta oficialmente JavaFX mobile e inclui um emulador Mobile.

O JavaFX foi construído em cima da plataforma Java Micro Edition (ME) na qual existem em mais de 2.6 bilhões de dispositivos móveis. E você poderá aproveitar seu conhecimento em JavaFX ou em Java ME para criar suas aplicações móveis.

Use o Netbeans IDE como ambiente de desenvolvimento JavaFX para tornar-lo aida mais fácil.

Baixe hoje mesmo o Netbeans IDE com JavaFX e a veja em ação. 

  • Download NetBeans IDE for JavaFX 1.1
  • Se o Netbeans IDE 6.5 estiver instalada a atualização é bem simples. É só clicar no globo que aparece no canto inferior esquerdo da tela, na barra de status, ir na aba de atualização e  confirmar seguir os passos da instalação. Caso não tenha aparecido um globo basta você ir no menu Ferramentas --> Plugins.

 Para mais informações:

adourado - February 10, 2009 11:22 AM
Certificado Sun Certified Specialist NetBeans IDE (SCSNI)

Como já falei aqui Agora sou Sun Certified Specialist NetBeans IDE (SCSNI) e a pouco tempo chegou o certificado e o cartão da prova.

 

Veja abaixo:

 

 

Em breve coloco para vocês o certificado do Sun Certified Programmer for the Java Platform, Standard Edition 5.0 (SCJP 5.0).

adourado - February 05, 2009 10:31 AM
Criando Aplicacoes Flex com NetBeans 6.5 e FlexBean

Procurando por novidades no Netbeans Wiki encontrei um tutorial ensinando a criar uma pequena aplicação exemplo feito em Flex e interagindo com um Servlet Java.

 

Você pode ver o tutorial tanto no Netbeans Wiki quanto no blog do autor.


adourado - January 30, 2009 01:47 PM
Wicket framework com Netbeans

Saiu no Netbeans.tv um novo screencast feito por Geertjan demonstrando o uso do Wicket framework com o Netbeans.

O vídeo introduz o Wicket framework e mostra como criar uma pequena aplicação no Netbeans IDE.



 

Assista o vídeo e veja os comentários do Netbeans.tv.

 

Controverso eu ? - NetBeans category - January 30, 2009 10:30 AM
NetBeans 6.5 Patch 2

Foi lançado o Patch 2 do NetBeans 6.5

Para atualizar você deve ir no menu Help na opção "Check for updates"

Pronto... baixe e seja feliz :)

adourado - January 29, 2009 04:03 PM
Patch2 for NetBeans IDE 6.5 Now Available

Foi liberado no Update Center a segunda atualização (Patch 2 ) do Netbeans 6.5.

 

Esta atualização possui correções nos módulos: C/C++, Database, Editing Files, GlassFish v3 Prelude, Groovy and Grails, Hibernate Support, IDE Platform, Java, Java EE, Java Profiler, JBoss Application Server, Mercurial, Native Access, NetBeans 6.5, PHP, Platform, RESTful Web Services, Ruby and Rails, Subversion, UML, Visual Mobile Designer and Web Applications..

 

A atualização é bem simples, é só clicar no globo que aparece no canto inferior esquerdo da tela, na barra de status, ir na aba de atualização e  confirmar seguir os passos da instalação. Caso não tenha aparecido um globo basta você ir no menu Ferramentas --> Plugins.


Veja mais informações sobre as correções.

Veja também: Liberado a primeira atualizacao para o NetBeans IDE 6.5 .

adourado - January 21, 2009 06:41 PM
Hibernate com Netbeans

Saiu no Netbeans.tv um novo screencast feito por Alexander Neidhart demonstrando o uso do Hibernate com o Netbeans.

O vídeo mostra como conectar a uma banco de dados, fazer a reengenharia reversa para criar as classes java para o Hibernate e criar uma aplicação teste para fazer uma consulta no banco. Além de mostrar como executar consultas HQL no Netbeans usando o SQL Editor For Hibernate ou HQL Editor.

Assista o vídeo e veja os comentários do Netbeans.tv.

 

adourado - January 15, 2009 11:59 AM
Netbeans: Produto do ano 2009

Há alguns meses eu fiz campanha para ajudar a eleger o Netbeans como produto do ano de 2009 (Ajude a eleger o Netbeans como Produto do Ano 2009) em uma pesquisa do site Developer.com.

 

 Saiu o resultado e o Netbeans dominou e ganhou nas 5 categorias que disputou:

 

Development Tool

Winner: NetBeans Platform

Development Utilities

Winner: NetBeans Profiler

Wireless/Mobile

Winner: NetBeans Mobility Pack for Connected Device Configuration (CDC) 5.5

Java Tool

Winner: NetBeans IDE

Open Source

Winner: NetBeans

 

Parabéns para a comunidade Netbeans!

 

Veja o resultado completo da pesquisa

Silveira Neto » netbeans - January 10, 2009 03:13 PM
Tirei a SCSNI

duke pulando

Já fazem algumas semanas que chegou o resultado, mas eu não tive tempo de postar. Eu passei na prova da certificação SCSNI (Sun Certified Specialist for NetBeans IDE) durante a fase beta do exame. A notícia foi uma surpresa porque depois da prova eu realmente tinha achado que tinha levado bomba. Mas como a prova era beta, ainda não estava definido qual ia ser a nota de corte, percentual mínimo que devia ser alcançado para você saber se passou ou não.

A certificação SCSNI cobre tópicos de configuração da IDE, setup de projetos, desenvolvimento Java SE, desenvolvimento Java Web EE, edição, testes, sondagem e depuração. Felizmente certificação não cobre toda as linguagens e plataformas que o NetBeans atualmente suporte e também deixa de fora a parte de plataforma. No entando é necessário saber o que é e o que não é suportado.

duke sun certified specialist for netbeans ide

Para quem pretende tirar essa certificação no futuro algumas dicas e links úteis:

  • O grande Wagner Santos, que escreve o Net Feijão, fez um excelente guia para a prova, vale muito a pena dar uma olhada.
  • Eu também postei um pequeno guia para prova. Ainda tem vários tópicos incompletos mas pode ser útil.
  • Tenha sempre a mão documentação do NetBeans é bastante vasta e cobre mais do que o necessário para a prova.
  • Assista todos os screencasts do NetBeans. Muitas ds coisas que você precisa saber são mais fáceis de aprender vendo fazer do que lendo como faz. Depois de ver o screencast, tente reproduzir a aula. Há também o NetBeans TV que reune vários vídeos e tutoriais relacionados ao NetBeans.
  • Há no wiki do NetBeans uma guia de estudo com uma lista de materiais interessantes para a prova.

Controverso eu ? - NetBeans category - January 07, 2009 12:41 PM
Previsões 2009 !

Bom , estou aqui para fazer algumas previsões para este ano de 2009, espero que acerte  na maioria delas...

  • Java se estabelece como plataforma multi-linguagem definitivamente
  • JRuby mostra-se a melhor implementação da linguagem Ruby de todos os tempos
  • Yahoo perde grande espaço no setor de buscas
  • Lançamento do Windows 7 é atrasado
  • JavaFX mostra-se tecnologia morna e sem uso amplo
  • Sun é vendida
  • Eu passo de ano e finalmente me formo :P (hehe)
  • Telefonia IP desbanca de vez telefônicas, e as mesmas entram em uma espiral de queda
  • Java EE 6 é o foco dos aficionados por novas tecnologias
  • WebServices SOAP terminam de morrer em aplicações não triviais
  • SOA é definitivamente enterrado
  • Steve Jobs falece
  • Apple mantem-se firme mesmo sem Steve Jobs
  • Dell entra em apuros financeiros
  • Processamento de computadores chegam no limite e pedem novas implementações de software para aproveitamento real dos "enjabres" novos criados pelas fabricantes
  • Bruno de Souza deixa a Sun
  • Apache larga o desenvolvimento do OpenJPA
  • Eclipselink é transformado em 4 opção quando o assunto é ORM
  • A bolsa de valores de são paulo tem recuperação recorde
  • Finalmente Java pode ser utilizado descentemente em iPhones
  • Coringão ganha o campeonato brasileiro de 2009
  • NetBeans se estabelece como opção real a usuários desesperados do Eclipse
Acho que são estas ;)

Abraços !

adourado - January 07, 2009 11:13 AM
Agora sou Sun Certified Specialist NetBeans IDE (SCSNI)

Vou começar o ano bem, dando uma notícia boa no primeiro post do ano. 

Ontem chegou pelo correiro uma carta da prometric informando o resultado da Certificação Beta Sun Certified Specialist NetBeans IDE (SCSNI) que fiz no dia 04 de novembro.

O resultado demorou quase 2 meses a ansiedade aumentou muito mas no final deu certo.

Passei e agora sou Sun Certified Specialist NetBeans IDE (SCSNI)!

Espero que daqui a aproximadamente um mês eu esteja postando uma nova certificação (JAVA).. comecei a estudar ontem e vou marcar a prova para o final do mês.

Feliz ano novo para todos!!

adourado - December 30, 2008 06:52 PM
Top 10 Novos Recursos do NetBeans IDE 6.5 (Parte 1)

.

 

Este é a primeira parte do artigo e ele fala e demonstra utilizando de vários recursos 5 dos 10 novos recursos TOP do Netbeans 6.5.

 

São eles:

  1. Performance Improvements;
  2. Compile & Deploy on Save;
  3. Groovy;
  4. Java Editor Enhancement;
  5. Matisse GUI Builder Enhancements.

Controverso eu ? - NetBeans category - December 23, 2008 10:43 AM
Previsões falhas (micos) de 2008

 

Vem chegando o final do ano... e voltamo-nos para as previsões feitas, e as concretizadas no ano...

Interessante como este ano eu quase acertei tudo !

Em negrito as previsões não concretizadas

Vejamos:

  1. Silverlight vai passar como um caminhão por cima da solucao ainda "obscura" Flash/Flex
  2. Ruby não vai se mostrar uma solução assim "tão magica"
  3. Rails vai deixar de ser a primeira resposta quando gritarem "temos que simplificar"
  4. Java perde espaço em dispositivos móveis
  5. Andrioid da Google vai ser mais um GRANDE LANÇAMENTO sem nenhum uso extensivo
  6. GWT morre como opção real de desenvolvimento
  7. JavaFX vai continuar sendo uma promessa de grego
  8. Finalmente a microsoft compra o yahoo
  9. Windows Vista vai continuar em queda
  10. NetBeans 6 vai ser escolhido por aqueles que antes preferiam o Eclipse
  11. Mono continua sua caminhada para a total decadência
  12. Delphi termina de morrer diante do gigante VisualStudio e do C#
  13. Codegear começa a falir... devido a péssima qualidade de suas IDE's novas... Delphi for PHP , for Ruby entre outros
  14. Firefox começa a perder mercado devido a bugs irritantes e a falta de inovação
  15. A internet começa a ficar mais semântica
  16. Este é o ano do tableless !
  17. Glassfish começa a ser utilizado em massa em projetos Opensource
  18. SOAP WebServices continua sua estrada de total decadência em aplicações não "feijão com arroz"
  19. Passo de ano na faculdade !! (essa eh boa !)
  20. Flex continua escondido e só utilizado em demonstrações imbecis da Adobe
  21. AIR ( aka Apollo) mostra para que veio... ou seja... para nada...
  22. Inicia-se o ciclo Web para Desktop... encerrando a desesperada procura de conversão Desktop para Web
  23. A Sun volta a ficar mau das pernas
  24. OpenOffice continua não cheirando e não fedendo
  25. OpenXML se torna mais um padrão pela ISO (infelizmente)
  26. Rodrigo Kumpera (louds) deixa a Novell
  27. Bruno de Souza deixa a Sun
  28. Borland termina de enterrar sua linha de IDE's
  29. Miguel de Icaza insere o mono no core do Gnome

 Comentários:

Java perde espaço em dispositivos móveis !
Eu sinceramente achei que Java estava se tornando defasado quando a pergunta fosse dispositivos móveis... mas pelo visto até hoje nada é tão abrangente quanto Java ( eu disse abrangente no sentido de base instalada) , quanto muitos estão dizendo que JAvaME morreu... vem o pessoal do Ginga e implaca no desenvolvimento da TV digital. Interessante... acho que nessa eu errei feio.

JavaFX vai continuar sendo uma promessa de grego
Promessa de grego ? Puts a Sun lançou a versão 1.0... calou a minha boca :P Pelo menos temos uma versão... agora se vai implacar... só o tempo dirá.

Finalmente a microsoft compra o yahoo
Não comprou... MAS FOI QUASE ;)

Firefox começa a perder mercado devido a bugs irritantes e a falta de inovação
Os bugs irritantes continuam lá... a falta de inovação é uma constante nelporem o F.F. está em plena ascensão.

Inicia-se o ciclo Web para Desktop... encerrando a desesperada procura de conversão Desktop para Web
Não foi este ano... MAS... JavaFX , Silverlight entre outros vão dar inicio a este ciclo em breve.

Rodrigo Kumpera (louds) deixa a Novell
Não foi este ano hehhe.. e pelo visto vai demorar... ele *REALMENTE* acha que o mono é a unico caminho verdade e vida.

Bruno de Souza deixa a Sun
Impressionante como isso ainda não aconteceu.

Bom , como não adianta chorar pelo leite derramado... QUE VENHA 2009 !

Silveira Neto » netbeans - December 20, 2008 07:23 PM
JavaFX, Simple Tile Set

Tile sets are a very simple way to draw scenarios with repeated elements. From simple to complex ones using a very low footprint.

First step, load the png file that stores the tileset into a Image. The file tiles.png shoud be in the same directory of the source code. I adjusted some tiles from those tile set I’ve blogged here before into a grid of 10×10 tiles.

Set of tiles, example

var tileset = Image {
   url: "{__DIR__}tiles.png"
}

Notice that each tile have 32 of height and 32 of width. We will assume this and use theses numbers when performing calculations to find a single tile in our tile set.

def w = 32;
def h = 32;

To display a Image in the screen we use a ImageView node. A ImageView can have a viewport property to create crop or zoom effect. A viewport is just a Rectangle2D, a object with position (minX and minY), height and width. If we want to display the first tile in the tileset we do

first tile

ImageView {
   image: tileset
   viewport: Rectangle2D{
      minX: 0, minY: 0, height: 32, width: 32
   }
}

Notice that the minX determines the column and minY the row in the tileset. The first row is 0*32, the second row is 1*32 and so on. If we want to display the tile at the second line and third column of the tileset we do

another_tile

ImageView {
   image: tileset
   viewport: Rectangle2D{
      minX: 2 * 32 , minY: 1*32, height: 32, width: 32
   }
}

Those properties in a Rectangle2D are for init and read only. So I created a list with all Rectangles I can need for use as a viewport.

def viewports = for (row in [0..9]) {
   for (col in [0..9]) {
       Rectangle2D{
           minX: col * w, minY: row * h, height: w, width: h
       }
   }
}

The scenario map is stored in another list. The first element of the list is 7, that is, the first tile in the scenario is the 7th tile from the tile set.

var map = [
    7,  3,  3,  3,  3,  3,  3,  3,  3,  8,
   19, 26, 40, 41, 24, 13, 13, 23, 24, 19,
   19, 36, 50, 51, 34,  2,  2,  2, 34, 19,
   19,  2,  2,  2,  2,  2,  2,  2, 25, 19,
   19, 57, 58, 44, 45, 46,  2,  2, 35, 19,
   27,  3,  3,  6, 55, 56,  5,  3,  3, 38,
   19, 60, 13, 16, 47, 48, 15, 13, 61, 19,
   19, 70,  1, 33,  1,  1,  1,  1, 71, 19,
   19,  1,  1,  1,  1,  1,  1,  1, 49, 19,
   17,  9,  9,  9,  9,  9,  9,  9,  9, 18,
];

Finally to create a scenario with 100 tiles, 10 per row and with 10 rows, in a list called tiles. Each iteration of this loop creates a ImageView. Each ImageView will store a single tile. We get the tile number in the map list and so use it to index the viewports list.

var tiles =  for (row in [0..9]) {
   for (col in [0..9]) {
      ImageView {
         x: col * w, y: row * h,
         viewport: bind viewports[map[row * 10 + col]]
         image: tileset
      }
   }
}

Additionally I added two things to transform this program also in a (extremely)  simple map editor. At each ImageView I added a callback for onMouseClicked event. When you click on a tile, it changes its map position, ie, the tile. The next tile for the left button and the last tile for any other button.

onMouseClicked: function( e: MouseEvent ):Void {
   var amount = if(e.button == MouseButton.PRIMARY) { 1 } else { -1 };
   map[row * 10 + col] = (map[row * 10 + col] + amount) mod 100;
}

The other thing is to print the map list when the program is over. There is the full program:

package tileeditor;
 
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.image.Image;
import javafx.scene.CustomNode;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.geometry.Rectangle2D;
import javafx.scene.input.MouseEvent;
import javafx.scene.input.MouseButton;
 
def w = 32;
def h = 32;
 
var map = [
    7,  3,  3,  3,  3,  3,  3,  3,  3,  8,
   19, 26, 40, 41, 24, 13, 13, 23, 24, 19,
   19, 36, 50, 51, 34,  2,  2,  2, 34, 19,
   19,  2,  2,  2,  2,  2,  2,  2, 25, 19,
   19, 57, 58, 44, 45, 46,  2,  2, 35, 19,
   27,  3,  3,  6, 55, 56,  5,  3,  3, 38,
   19, 60, 13, 16, 47, 48, 15, 13, 61, 19,
   19, 70,  1, 33,  1,  1,  1,  1, 71, 19,
   19,  1,  1,  1,  1,  1,  1,  1, 49, 19,
   17,  9,  9,  9,  9,  9,  9,  9,  9, 18,
];
 
var tileset = Image {
    url: "{__DIR__}tiles.png"
}
 
def viewports = for (row in [0..9]) {
   for (col in [0..9]) {
       Rectangle2D{
           minX: col * w, minY: row * h, height: w, width: h
       }
   }
}
 
var tiles =  for (row in [0..9]) {
   for (col in [0..9]) {
      ImageView {
         x: col * w, y: row * h,
         viewport: bind viewports[map[row * 10 + col]]
         image: tileset
 
         onMouseClicked: function( e: MouseEvent ):Void {
            var amount = if(e.button == MouseButton.PRIMARY) { 1 } else { -1 };
            map[row * 10 + col] = (map[row * 10 + col] + amount) mod 100;
         }
      }
   }
}
 
Stage {
    title: "JavaFX Simple Tile Editor"
    scene: Scene {
        content: [ tiles ]
    }
    onClose: function() {
        println(map);
    }
}

Here is the result for that map

tlemap javafx

And you can try it yourself in your browser. Play it online now.

Here is a video of it working

Downloads:

Possibilities

We are using just  a image that can handle 100 tiles, tiles.png with less than 30Kb. The map is also composed with 100 tiles. Each tile we can choose between 100 different tiles, so we can compose 10100 different maps (one googol10 ). Most of them are useless and without any sense, but some are cool. :)

Silveira Neto » netbeans - December 18, 2008 03:58 AM
NetBeans with JavaFX 1.0 on Linux

Following Weiqi Gao’s steps it’s possible to already have a complete JavaFX development environment on Linux.

netbeans_linux_javafx

It’s all there for JavaFX development. Code complementation, live preview, the pallet with code snipets, templates, etc. Easier a lot my work. Those features already availiable on Windows and Mac OS X trought the regular JavaFX Kit.

adourado - December 12, 2008 12:02 PM
MediaPlayer em menos de 5 minutos com JavaFX e Netbeans 6.5

Saiu no Netbeans.tv um screencast demonstrando os recursos poderosos e simples do JavaFX.

Mostra como usar  o Netbeans 6.5 para fazer um Player com JavaFX em menos de 5 minutos.

 


 

Assista o vídeo e veja os comentários do netbeans.tv aqui.

Você também pode fazer o download do vídeo aqui.

adourado - December 11, 2008 02:01 PM
Liberado a primeira atualizacao para o NetBeans IDE 6.5

Foi liberado no Update Center a primeira atualização (Patch 1) do Netbeans 6.5.

 

Esta atualização possui 62 correções nos módulos: Auto Update Services, Ant, BlueJ Project Support, C/C++, Database, GUI Builder, GlassFish v3 Prelude, GlassFish v3 Prelude - JRuby, IDE Platform, Java, Java EE, Web Applications, Java Profiler, NetBeans 6.5, PHP, Platform, RESTful Web Services, Ruby and Rails, SaaS Services Support and UML.

 

Para mais informações sobre as correções veja aqui.


A atualização é bem simples, é só clicar no globo que aparece no canto inferior esquerdo da tela, na barra de status, ir na aba de atualização e  confirmar seguir os passos da instalação. Caso não tenha aparecido um globo basta você ir no menu Ferramentas --> Plugins.

Controverso eu ? - NetBeans category - December 10, 2008 01:03 PM
NetBeans 6.5 Patch 1 Released !

O primeiro patch do NetBeans 6.5 está disponível para download no UPDATE CENTER, ele corrige uma porção de coisas chatas...

A lista completa de correções pode ser vista aqui.

Lembrando que você deve mandar atualizar duas vezes , a primeira puxa uma atualização do UpdateCenter e a outra puxa as demais...

Atualizem !

 

NetFeijão Brazil - December 10, 2008 04:43 AM
E o Netbeans fala Português

A partir da versão 5.0 foi iniciado um projeto de tradução do NetBeans para diversos idiomas, entre eles o Português do Brasil (pt_Br). Foi neste momento que a comunidade de desenvolvedores brasileiros mostrou todo seu potencial, onde a partir da versão 5.5, em tempo invejável, sob a coordenação de Michel Graciano nossa equipe conseguiu um grande destaque dentro os outros projetos, pois foi o primeiro a finalizar toda a internacionalização para esta versão, tornando-se modelo para os demais times de outros idiomas.
O NetBeans 5.5 foi a primeira versão totalmente internacionalizada e organizada pela comunidade disponibilizada pela Sun Microsystems (Sun), até então apenas as versões em japonês e chinês estavam disponíveis, ambas patrocinadas pela própria empresa. Não há como deixar de destacar vários benefícios de ter-se uma ferramenta livre em português, entre os principais incentivadores está em motivar e reduzir os obstáculos que os acadêmicos enfrentam nos bancos escolares em nossas universidades e cursos técnicos, onde muitas vezes o idioma inglês é apenas mais um dos inúmeros obstáculos e uma ferramenta na sua língua nativa ajuda muito a entender suas funcionalidades. Outro motivo não menos relevante é o fato dos governos e seus órgãos fazerem uso preferencial de softwares no idioma oficial, até porque muitas vezes o uso de sistemas em idioma estrangeiro é vetado. Desta forma softwares traduzidos ganham mais popularidade aos não traduzidos, sendo essa a intenção do projeto, fazer o NetBeans ser o mais popular possível. Não podendo deixar de destacar, a internacionalização reflete diretamente em produtos desenvolvidos sobre o NetBeans Platform, onde estas tradução saem de graça para a empresa ou desenvolvedor do projeto.

Todo o projeto teve o acompanhamento do pessoal interno da Sun bem como do projeto NetBeans, em particular Janice Campbell e Masaki Katakai, os quais coordenam e ajudam os projetos de internacionalização. Este tipo de iniciativa é bastante importante pois reduz as distâncias entre os desenvolvedores independentes e a própria Sun. A versão 6.0 do Netbeans ainda não está disponível em português, mas o projeto de tradução já esta se preparando para esta próxima etapa, e você pode participar, quanto mais colabordores melhor. Para participar acesse o site oficial do projeto (ver Referências), inscreva-se na lista de discussão e quaisquer dúvidas o pessoal estará pronto para respondê-las. Na última edição do Sun Tech Days em São Paulo (Figura abaixo), aconteceu uma apresentação do projeto e a entrega dos certificados de participação.


Foto: Eduardo Costa, Marcos Junqueira, (Eu) Wagner Santos, Jefferson Prestes, Michel Graciano e o Bruno Souza o “Javaman” que apresentou o projeto.

NetFeijão Brazil - December 10, 2008 04:43 AM
Tim Boudreau e Henry Story no Brasil

Segunda Feira (05/12/2007) esteve em São Paulo Tim Boudreau o engenheiro senior da Sun e um dos criadores NetBeans, ele esteve em um Mini curso exclusivo da Globalcode, esteve falando sobre as mais recentes funcionalidades do NetBeans 6.0 tais como: Melhorias no editor; Suporte a Ruby/JRuby/Ruby on Rails; Instalação e atualização mais fáceis; Desenvolvimento de GUI Swing; Profiling; Web e Java EE; Mobilidade; SOA; UML; Melhorias na API da plataforma NetBeans.

Vinicius Senger e Tim Boudreau




Mauricio Leal da Sun fez uma demo das novas funcionalidades do NetBeans 6 para o desenvolvimento de aplicativos JavaME.













Nos próximos dias a Globalcode irá promover outro mini curso sobre Web Semântica com Henry Story, fiquem ligados pois as vagas se esgotam rapidamente...
Para quem não sabe Web Semântica é o rumo atual que a Web tem tomado e em um sentido mais amplo permitirá que homem e máquina trabalhem em cooperação. Hoje o grande desafio é desenvolver tecnologias e linguagens que tornem a informação legível para as máquinas, essa integração hoje em dia é possível graças ao XML (eXtensible Markup Language), ao RDF (Resource Description Framework) e arquiteturas de metadados..
A Web Semântica é associada ao Web 3.0 como um próximo passo na evolução da rede mundial de computadores. Ela tem como objetivo imediato de categorizar as informações aumentando assim a eficiência em mecanismos de ferramentas de busca como Google, Altavista, etc...

Estrutura de uma Rede Semântica

E no fim do mini curso, fui gentilmente convidade pela familia Senger para um jantar com os ilustres visitantes..

Jorge Diz, Henry Story, Vinicius Senger, Yara Senger, Tim Boudreau, Mauricio Leal e Wagner Santos


Para maiores informações sobre Web Semântica acesse http://www.w3.org/2001/sw/ da W3C.

NetFeijão Brazil - December 10, 2008 04:43 AM
L10N no SouJava











No dia 10 de Abril tive o prazer de dar uma palestra no auditório da Globalcode sobre o projeto de L10N que significa Localization, o 10 se refere as dez letras que existe entre a letra L e N.. Jefferson Prestes um dos colaboradores do Projeto e tradução da lista de notícias (newsletter) acabou ajudando bastante nesta apresentação.
No mesmo dia Greg Sporar, deu uma palestra sobre as novidades do NetBeans 6.1 (ainda Beta), sobre performance, sobre um plugin do NetBeans para o IReports, entre outras coisas..
Janice Campbell a Gerente Mundial de programas de tradução escreveu sobre a palestra neste link.
O material da apresentação se encontra no java.net, no projeto do soujava, e pode ser baixado neste link.
Sobre a palestra:
Falamos sobre o projeto de tradução IDE, que desde a versão 5.5 do NetBeans tupiniquim liderada por Michel Graciano, foi totalmente internacionalizada e organizada pela comunidade, ganhando um destaque no cenário internacional sendo considerado um padrão para os outros países em termos de organização e postura.

Benefícios

  • Ambiente Acadêmico.
Facilidade no aprendizado para os iniciantes cuja língua nativa seja diferente do inglês.
  • Software Governamental
Preferência por ferramentas no idioma oficial.
Muitas vezes sistemas com idioma estrangeiro é vetado.

  • NetBeans Platform
Impacto direto, pois a ferramenta traduzida é disponibilizada de graça para as empresas e desenvolvedores da plataforma.

Falamos sobre a tradução da Newsletter e da lista de discussão (nbdiscuss_pt@netbeans.org)

Como Participar
  1. Cadastre-se na lista de discussão pt_br@netbeans.org
  2. Apresente-se
  3. Colabore
  4. A Versão 6.1 em breve estará disponível
  5. Estamos ansiosos por sua contribuição!


Segue algumas fotos do evento.




No inicio da palestra.


















Sobre o projeto de tradução.



















Jefferson Prestes.




















E Greg Sporar.














As fotos foram cortesia da minha grande amiga Valéria Guimarães Mendonca vulgo "JavaGirl"...

adourado - December 05, 2008 12:45 PM
04/12/2008, o dia do JavaFX

Ontem foi mesmo o dia do JavaFX. Como planejado, o pessoal da Sun liberou a primeira versão estável do JavaFX, a versão 1.0.

 

O JavaFX 1.0 simplifica expressivamente  a construção de aplicações ricas para internet ou RIA (Rich Internet Applications) com vídeos e áudios de alta qualidade, textos ricos, gráficos em vetores, animação e webservices. 

 

Para maiores informações viste o anúncio oficial.

 

Mas não para por ai, no mesmo dia também foram anunciados:

  1. Site - muito mais bonito e intuitivo além de diversos exemplos comentados e com código-fonte.
  2. Blog - com a mesma beleza do site.
  3. NetBeans IDE 6.5 para JavaFX - A IDE oficial para desenvolvimento JavaFX. Com ela você pode criar, testar, debugar e implantar aplicações JavaFX para as plataformas desktop, web e móvel. Veja um screenshot dela em funcionamento aqui. Você pode baixar o Netbeans já com JavaFX incluso ou caso você já tenha o Netbeans 6.5 instale pelo Update Center (ferramentas -> plugin).

 

E ai, o que está esperando? Baixe e entre hoje mesmo na era FX. :)

Michel Graciano's Weblog - November 27, 2008 11:24 AM
How to solve NetBeans and Java editors when scrolling down large files under Linux the text becomes garbled

I am sure one image tell more than thousands of works, so here... we... go!


[Click to enlarge]


If you are experiencing this kind of behavior in your application, IDE or any kind of editor, don't worry so much, it is a misconfiguration of your video device. Just to track the problem, some issues was filed against NetBeans Issuezilla and them was identified as a invalid issue, since it is a video card misconfiguration. After some searches and tests I realized how to solve the problem. I am current using a Ubuntu 8.10 with an Mobile Intel X3100 video card, which was automatically configured by Ubuntu in my xorg.conf file as below:

Section "Device"
Identifier "Configured Video Device"
EndSection

The first step to solve the problem is to know which display controller you are exactly using. To got it, I used lspci command line tool, where Display controller property will say what you need. Now, you just need to edit your /etc/X11/xorg.conf file with the code that follow and don't forget to backup your current xorg.conf file:

Section "Device"
Identifier "Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller"
Option "AccelMethod" "xaa"
Option "RenderAccel" "true"
EndSection

where Identifier should be your display controller. Now you just need restart your X server and back to work. For details about this solution, see this discussion and comments are really appreciated.

Another alternative is add a new property for JDK:

-Dsun.java2d.pmoffscreen=false

This should fix it too.

Happy coding!

Silveira Neto » netbeans - November 24, 2008 08:58 PM
NetBeans, palestra ao vivo

Estamos experimento uma coisa nova dentro do OSUM. Vamos começar a fazer os webinars, palestras ao vivo pela internet, agora em outras linguas além do Inglês.

Eu vou ministrar o primeiro em português amanhã, aqui está o relese:

Nós estamos introduzindo para os membros do OSUM seminários web ao vivo para prover treinamento em tempo real nas últimas tecnologias de Software Livre.

Temos o prazer de começar nossa série de seminários web com esta sessão sobre o recém lançado NetBeans 6.5.

Este seminário web vai introduzir as novas funcionalidades do NetBeans 6.5 como:
→ Suporte robusto a PHP e JavaScript
→ Depuração para Groovy a Grails
→ Novas melhorarias para Java, Ruby e Rails, e desenvolvimento em C/C++
→ Suporte nativo para Hibernate, importação de projetos Eclipse, e a compilação ao salvar.

Este seminário web também proverá uma demonstração detalhada das capacidades de edição da IDE NetBeans e o famoso Construtor de Interfaces Swing (Matisse).

Este seminário será conduzido por Silveira Neto, Embaixador de Campus da Sun em Fortaleza, Ceará, membro do CEJUG (Ceará Java User Group), desenvolver e entusiasta de tecnologias de Software Livres.

Este seminário web será conduzido em Português. Por favor, consulte o Calendário de Eventos do OSUM para informações da mesma seção em outras línguas.

Este seminário web está marcado para o dia 25 de Novembro de 2008 as 20:00 no horário de Fortaleza, Ceará (UTC -3:00).
Isso corresponde a:
→ 21:00 em São Paulo, Rio e demais estados de mesmo fuso horário do Ceará mas com horário de verão em vigência.
→ 23:00 em UTC (Greenwich).

Por favor use o World Clock Meeting Planner para ajustar esse horário para sua localidade.

Este seminário web será conduzido usando o Elluminate Live! Você poderá escutar ao vivo o áudio nos auto-falantes ou fones de ouvido de seu computador e poderá fazer perguntas através do bate-papo em texto. Use o link URL provido no campo “Website or map” da seção. Por favor entre de 5 a 10 minutos antes para a configurar propriamente sua seção. Para maiores informações e requisitos mínimos do sistema use o Elluminate

Página do evento dentro do OSUM.

Link para assistir ao vivo via Elluminate.

Aviso: House um erro durante a marcação da seção. Eu marquei que era de Fortaleza no Brasil mas o sistema do Elluminate entendeu que meu horário era o de Brasília, então ao invés de marcado para as 23:00 em UTC ficou marcado para 22:00 em UTC. Não houve tempo suficiente para eu avisar a todos então eu tive que começar no horário errado mesmo. Ainda assim houve uma boa participação, contamos com umas 15 pessoas e tudo ocorreu bem. Muita gente me disse que tentou entrar e não conseguiu então vou tentar fazer um bis dessa apresentação. Os slides que eu usei e a gravação serão divulgados em breve. Obrigado a todos e me desculpem pelo transtorno.

adourado - November 23, 2008 02:19 PM
Ajude a eleger o Netbeans como Produto do Ano 2009

O site Developer.com está fazendo uma pesquisa para eleger os produtos do ano e as ferramentas do Netbeans estão participando em 5 categorias:

  • Development Tool of the Year: NetBeans Platform
  • Development Utility of the Year: NetBeans Profiler
  • Wireless/Mobile Development Tool or Add-in of the Year: NetBeans Mobility Pack for Connected Device Configuration (CDC) 5.5
  • Java Tool or Add-in of the Year:NetBeans IDE
  • Open Source Tool of the Year: NetBeans

Se você é desenvolvedor Netbeans, gosta dela ou acredita nela, vote!

Para responder a pesquisa click aqui.

A votação acaba no dia 15 de Dezembro de 2008.

adourado - November 23, 2008 02:14 PM
Liberado a versao final Netbeans 6.5

Foi lançado hoje a versão final do Netbeans 6.5 e já pode ser baixada em diversos idiomas inclusive o Português.

Veja a lista completa das novidades aqui e o download você faz aqui.

Baixem, testem e comentem.. 

Algumas das novidades desta versão já foram comentadas por mim em:  Netbeans 6.5 - O que tem de novo e Lançamento Netbeans 6.5 RC em português.

adourado - November 23, 2008 01:06 PM
Presentes do Vice Presidente de Desenvolvimento da Sun Microsystems

Na semana passada postei sobre a chegada do meu cheque simbólico "O checao da SUN chegou!" e sobre o acontecido na cerimônia de premiação.

Claro que eu queria o meu checão pela mão de Jim Parkinson (Vice President of Developer, Tools and Services organization at Sun Microsystems Inc.) durante sua apresentação no Sun Tech Days em São Paulo. Mas fiquei feliz de ter conhecido pessoalmente. 

Com a chegada do checão a minha felicidade estava completa. Mas como na história de Joseph Climber, "...ah vida é uma caixinha de surpresas...", tive a surpresa de receber diretamente dos EUA uma carta escrita a mão de Jim Parkinson pedindo desculpas pelo acontecido e alguns presentinhos:

  1. O livro Filthy Rich Clients,
  2. Uma Caneta do Java,
  3. Uma camiseta do zembly e
  4. Uma camiseta autografada pelo pai do Java JamesGosling.

 Segue a imagem dos presentinhos...

Ainda bem que não fizeram meu checão!! :)

Silveira Neto » netbeans - November 21, 2008 01:12 PM
Inkscape and JavaFX working together

Inkscape is a open source cross-platform vector graphics editor application that I use daily to create draws.

When Project Nile was launched, me and some others guys complained about lack of open source alternatives in the workflow of creation with JavaFX. So we developed a module inside Inkscape that converts your SVG drawings to JavaFX code.

Features

  • Both are free and open source technologies, providing more tools on a powerful workflow for programmers and designers to develop Rich Internet Applications.
  • Comes natively with Inkscape. Install Inkscape an have JavaFX exporting out-of-the-box. No needing to install external plugins.
  • Provides a way to Inkscape users to make RIA applications reusing their work at drawing tool.
  • Provides a way to JavaFX programmers a tool for designers their graphics and interfaces.
  • Keep separated the JavaFX programming logic from the graphics resources but also provide a way to connect them.
  • They work on Windows, Mac OS, Linux, OpenSolaris and FreeBSD.

Workflow Example

I’ll show here step by step how would be a designer-developer workflow from designing graphical elements, such interfaces, to integrating it to a JavaFX Script code in NetBeans. In this example I’m using Inkscape 0.46-devel, build from the unstable sources and NetBeans 6.1 with the JavaFX module. See here how to build Inkscape from sources and here how to do some optimizations on the build.

Here’s a artwork (a modified version from another one I did in another post) made with Inkscape.

Doesn’t matter the complexity of the drawing it is made of discrete elements such circles, rectangles, paths and others. What the exporting module does is converting these SVG elements into JavaFX Scene Graph API elements.

To do that just click on File → Save As… or Shift+Ctrl+S.

Select JavaFx as the output format.

And chose a name. I’m saving the drawing as Girl.fx.

Now the drawing is a JavaFX class that extends from CustomNode. Once in your classpath (in this case the same directory of your main code) you can call it.

Girl{}

Another example, the famous SVG tiger.

Tiger{}

Actually, you can get the elements of your drawing as attributes nodes of the main node. We use the name you gave to your object to name the attributes.

import javafx.scene.paint.Color;
var girl = Girl{}
girl.rightiris.fill = Color.LIME;
girl.fringe.fill = Color.WHITE;
girl.backhair.fill = Color.DARKGRAY;
girl.hair.fill = Color.GRAY;

import javafx.scene.paint.Color;
var girl = Girl{}
girl.rightiris.fill = Color.GREEN;
girl.backhair.fill = Color.DARKRED;
girl.hair.fill = Color.RED;

You can also put event handling by code.

import javafx.input.MouseEvent;
var p = Player{}
p.x.onMouseClicked = function( e: MouseEvent ):Void {
java.lang.System.exit(0);
}

As a ordinary JavaFX Node, you can do whatever you do with a Node, like using it inside a application or applying effects or transformations.

import javafx.application.Frame;
import javafx.application.Stage;
import javafx.scene.effect.SepiaTone;
 
var girl = Girl{
   scaleX: 0.5
   scaleY: 0.5
   effect: SepiaTone{}
}
 
Frame {
   visible: true
   stage: Stage {
      content: [girl]
   }
}

Using this approach you can have the reference and total control under all those elements that compose your drawing. You can design complete interfaces and attach event handling by code.

Source code

The module is already on the main Inkscape dev tree and working properly. I guess it will be officially released to all users in the next Inkscape release.

Still to do

  • Fix some problems with strokes.
  • Fix some problems in the gradients.
  • Use Zlib to create jfd files when the structure is too big.
  • Provide a dynamic method like getElementById in JavaScript.
  • Convert effects like blur to JavaFX effects.
  • There are some i18n errors in the module to be fixed.
  • Finish the adaption from Paths to SVGPaths.
  • Finish the adaption to the new JavaFX 1.0 syntax (coming December, 2).

Thanks!

Thanks for all guys that worked on this module and also on the projects Inkscape and JavaFX. Specially thanks for Bob Jamison, Jim Clarke, Joshua Marinacci and others. That’s my first contribution to a big free software, I’m very glad and I want to do much more. :D

adourado - November 12, 2008 07:44 AM
Deixando o Netbeans mais bonito e rapido com o Nimbus

Com a liberação do JDK 6 update 10 com look and feel do Nimbus incorporado a ele. Você pode usa-lo sem a necessidade de adicionar nenhum jar ou coisa parecisa.

É só adicionar no seu código a linha abaixo.

UIManager.setLookAndFeel(
"com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel" );

Ou adicionando o seguinte parâmetro na chamada do java:

swing.defaultlaf=com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel

Para aplicar o Nimbus no Netbeans você precisa executar ose seguintes passos:

 

  1. Instalar o JDK 6 update 10  caso já não esteja;
  2. Ir na pasta etc dentro da pasta do Netbeans. (ex: C:\Arquivos de programas\NetBeans 6.5 RC2\etc)
  3. Abrir o arquivo netbeans.conf
  4. Atribuir o caminho do JDK 6 update 10  a netbeans_jdkhome
    netbeans_jdkhome="C:\Arquivos de programas\Java\jdk1.6.0_10
  5. Adicionar a linha abaixo a netbeans_default_options
    --laf com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel

 Caso seu Netbeans esteja em execução, reinicie.

Veja o antes e o depois nas figuras abaixo:

 Figura 1 - Netbeans RC2 Look and Feel Padrão (antes)

 

 Figura 2 - Netbeans RC2 Look and Feel Nimbus (depois)

Isso serve para todas as aplicações baseadas no Netbeans Platform. Como o NB Project.

Silveira Neto » netbeans - November 06, 2008 02:55 PM
JavaFX, Defuse the Bomb

I continue to develop simple games demos to feel better the strengths and weakness of JavaFX for game development.

Preview:

Click to play via Java Web Start:

There’s a little JavaFX game demo where you have to transport a bomb to a defuse point without touching in the walls. I’m using the collision detection methods I described early in this post to detect when the bomb hits a wall and then explode or when a bomb is inside the defuse point and the game ends. As it’s only a demo, it’s just one single level, but adding more levels would be easy.

Basically we have this four images:


bomb.png


goal.png


floor.png


wall.png

The code is petty simple. A little bit more than 300 lines with even with all comments and declarations. I transform the bomb image into a draggable node, create a list of collidable nodes and a especial node, the goal. I check the collisions when the bomb is dragged by mouse, if it hits something, it blows up.

I use extensively the TimeLine class from the animation framework (javafx.animation) to create chained animations and even to control some game logic.

As I focused in the simplicity, I don’t declared any classes to after instantiate their objects. I just was using common classes from JavaFX and putting logic on ir throught event and binding to external variables.

import javafx.application.Frame;
import javafx.application.Stage;
import javafx.animation.Timeline;
import javafx.animation.KeyFrame;
import javafx.animation.Interpolator;
import javafx.scene.image.ImageView;
import javafx.scene.image.Image;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.paint.Color;
import javafx.scene.geometry.Circle;
import javafx.scene.geometry.Rectangle;
import javafx.scene.geometry.Shape;
import javafx.scene.text.Text;
import javafx.scene.Font;
import javafx.scene.FontStyle;
import javafx.input.MouseEvent;
 
/* Fade variable modified in some animations and used in the fadescreen */
var fade = 0.0;
 
/* The Bomb */
var lock = false;
var tx = 0.0;
var ty = 0.0;
var bomb:Node = Group{
    opacity: bind bombfade;
    content: [
        ImageView {
            image: Image {
                url: "{__DIR__}/bomb.png"
            }
        },
        Circle {
            centerX: 45, centerY: 21, radius: 7, fill: Color.LIME
            opacity: bind led
        },
        Circle {
            centerX: 30, centerY: 30, fill: Color.WHITE
            radius: bind fireradius
        },
    ],
    var startX = 0.0;
    var startY = 0.0;
    translateX: bind tx
    translateY: bind ty
 
    onMousePressed: function( e: MouseEvent ):Void {
        if (lock) {return;}
        startX = e.getDragX() - tx;
        startY = e.getDragY() - ty;
    }
 
    onMouseDragged: function(e:MouseEvent):Void {
        if (lock) {return;}
        tx = e.getDragX() - startX;
        ty = e.getDragY() - startY;
        checkcollissions();
    }
}
 
/* Big rectangle that covers all the screen (bomb explosion or game end) */
var fadescreen = Rectangle {
    x: 0, y: 0, width: 640, height: 480, fill: Color.WHITE
    opacity: bind fade
}
 
/* The wood floor image for the scenario. */
var floor = ImageView {
    image: Image {
        url: "{__DIR__}/floor.png"
    }
}
 
/* The goal image where the bomb should be placed. */
var goal = ImageView {
    x: 470, y: 360
    image: Image {
        url: "{__DIR__}/goal.png"
    }
}
 
/* List of obstacles nodes that the bomb can collide with. */
var obstacles = [
    Rectangle { x: 120, y: 0, width: 100, height: 300, fill: Color.BLACK},
    Rectangle { x: 350, y: 200, width: 100, height: 300, fill: Color.BLACK},
    Rectangle { x: 370, y: 50, width: 50, height: 50, fill: Color.BLACK},
    Rectangle {
        x: 250, y: 120, translateX: bind move, width: 100, height: 50
        fill: Color.BLACK
    },
];
 
/* Visible representations of obstacles */
var wallimage = Image {
    url: "{__DIR__}/wall.png"
}
var walls = for(obs in obstacles){
    ImageView {
        x: obs.x, y: obs.y, translateX: bind obs.translateX
        clip: obs, image: wallimage
    }
}
 
/* Animation for a blinking green led */
var led = 0.0;
var bombclock = Timeline {
    repeatCount: Timeline.INDEFINITE
    autoReverse: true
    keyFrames : [
        KeyFrame {
            time : 0s
            values : led => 0.0 tween Interpolator.LINEAR
        },
        KeyFrame {
            time : 1s
            values : led => 1.0 tween Interpolator.LINEAR
        }
    ]
}
 
/* Animation for the bomb explosion and game reset */
var fireradius = 0.0;
var explosion:Timeline = Timeline {
    repeatCount: 1
    keyFrames : [
        KeyFrame {
            time : 0s
            values : [
                fireradius => 0.0,
                fade => 0.0
            ]
        },
        KeyFrame {
            time : 2s
            values : [
                fireradius => 200.0 tween Interpolator.LINEAR,
                fade => 1.0 tween Interpolator.LINEAR
            ]
            action: gamereset
        },
        KeyFrame {
            time : 3s
            values: fade => 0.0 tween Interpolator.LINEAR
        },
    ]
}
 
/* Reset variables for initial values */
function gamereset(){
    lock = false;
    fireradius = 0.0;
    tx = 0.0;
    ty = 0.0;
    bombfade = 1.0;
 
    moveblock.start();
    specialcollison.start();
    bombclock.start();
}
 
/* Animation when the bomb reaches the goal. Bomb disapear. */
var bombfade = 1.0;
var bomdisapear = Timeline {
    repeatCount: 1
    keyFrames : [
        KeyFrame {
            time : 1s
            values: [
                        bombfade => 0.0 tween Interpolator.EASEBOTH,
                        fade => 0.0
            ]
        },
        KeyFrame {
            time : 2s
            values:
                    fade => 1.0 tween Interpolator.LINEAR;
            action: gamereset
        },
        KeyFrame {
            time : 3s
            values:
                    fade => 0.0 tween Interpolator.LINEAR;
        },
    ]
}
 
/* Animation for a moving block. */
var move = 0.0;
var moveblock = Timeline {
    repeatCount: Timeline.INDEFINITE
    autoReverse: true
    keyFrames : [
        KeyFrame {
            time : 0s
            values :
                    move => 0.0
        },
        KeyFrame {
            time : 3s
            values :
                    move => 200.0 tween Interpolator.EASEBOTH
        },
    ]
}
 
/* Check and handle possible collisions. */
function checkcollissions(): Void {
    if(checkobstacles()){
        lock = true;
        specialcollison.stop();
        moveblock.stop();
        explosion.start();
    }
 
    if (insidenode(bomb,goal)) {
        lock = true;
        moveblock.stop();
        bomdisapear.start();
    }
}
 
/* There was a bug, when the bomb is stopped, not been gragged, in front of
the moving block, it could pass through it because checkcollissions() was
only called on mouse moving. This make sure checking this special case. */
var specialcollison:Timeline = Timeline {
    repeatCount: Timeline.INDEFINITE
    keyFrames : [
        KeyFrame {
            time : 1s/5
            action: function(){
                if(hitnode(obstacles[sizeof obstacles-1], bomb)){
                    lock = true;
                    moveblock.stop();
                    explosion.start();
                    specialcollison.stop();
                }
            }
        }
    ]
}
 
/*
* The next four functions are for collision detection.
* @See http://silveiraneto.net/2008/10/30/javafx-rectangular-collision-detection/
*/
 
/*
 * Check collision between two rectangles.
 */
function collission(ax, ay, bx, by, cx, cy, dx, dy): Boolean {
    return not ((ax > dx)or(bx < cx)or(ay > dy)or(by < cy));
}
 
/*
 * Check if the first rectangle are inside the second.
 */
function inside (ax, ay, bx, by, cx, cy, dx, dy):Boolean{
    return ((ax > cx) and (bx < dx) and (ay > cy) and (by < dy));
}
 
function hitnode(a: Node, b:Node): Boolean {
    return (collission(
        a.getBoundsX(), a.getBoundsY(),
        a.getBoundsX() + a.getWidth(), a.getBoundsY() + a.getHeight(),
        b.getBoundsX(), b.getBoundsY(),
        b.getBoundsX() + b.getWidth(), b.getBoundsY() + b.getHeight()
    ));
}
 
function insidenode(a:Node,b:Node):Boolean {
    return (inside(
        a.getBoundsX(), a.getBoundsY(),
        a.getBoundsX() + a.getWidth(), a.getBoundsY() + a.getHeight(),
        b.getBoundsX(), b.getBoundsY(),
        b.getBoundsX() + b.getWidth(), b.getBoundsY() + b.getHeight()
    ));
}
 
/*
* Check collision of bomb against each obstacle.
*/
function checkobstacles(): Boolean{
    for(obst in obstacles){
        if (hitnode(obst, bomb)){
            return true;
        }
    }
    return false;
}
 
/* Pack visual game elements in a Frame's Stage, unresizable. */
Frame {
    title: "Defuse the Bomb"
    width: 640
    height: 480
    resizable: false
    closeAction: function() {
        java.lang.System.exit( 0 );
    }
    visible: true
 
    stage: Stage {
        content: bind [floor, goal, walls, bomb, fadescreen]
    }
}
 
/* Call gamereset to set initial values and start animations */
gamereset();

Downloads:

adourado - November 05, 2008 04:34 PM
Prova de Certificacao Netbeans IDE (SCSNI)

Ontem fiz a prova de certificação para Netbeans IDE Certification Exam e vou dá a minha opinião sobre ela.

A primeira coisa que vem a minha cabeça quando penso nela é que achei a prova muito extensa e cansativa, 161 questões não é fácil não, no final já estava meio desnorteado :(. Mas eu acredito que esse número de questões deve-se por ser uma prova beta e em criação. Também por este motivo o resultado só sai em 6 a 8 semanas. A oficial deve vir melhorada, com menos questões e entregando o resultado na hora.

Antes da prova, respondi uma pequena pesquisa com 6 questões falando basicamente da minha experiência com os assuntos da prova. -- deve ser coisa de Beta.

O conteúdo da prova foi bem dividido, muitas questões de todos os assuntos. Pela quantidade de questões algumas vezes tive a sensação de que repetiram a questão.

Uns dos conteúdos que mais tiveram questões foram sobre a importação de projetos existentes. Ex.: 1) Como adicionar libs a um projeto do Netbeans. 2) Como configurar as libs de um projeto free-form. 3) O que é preciso para importar um projeto web para o Netbeans. 4) Etc.

As questões de Profiling foi onde sentir a maior dificuldade por não utilizar.

A prova dá para ser feita sem estudar se você já tem bastante experiência com o Netbeans. Que é meu caso, fiz a prova sem estudar e mesmo assim acho que fiz bem.

adourado - October 31, 2008 08:27 PM
Repercussao da premiacao do Netbeans Innovators Grant no Sun Tech Days em Sao Paulo

 


A premiação que aconteceu na manha do primeiro dia (29/09/2008) do Sun Tech Days 2008  em São Paulo gerou uma grande repercussão no mundo e foi destaque em vários blogs e sites de jornais e revistas. Nem preciso falar que o número de visitantes ao site do projeto aumentou consideravelmente.

Em uma busca rápida no google encontrei essas noticias:

  1. http://www.baguete.com.br/noticiasDetalhes.php?id=28884
  2. http://blogs.sun.com/arungupta/entry/sun_tech_days_2008_sao
  3. http://www.sun.com/aboutsun/pr/2008-09/sunflash.20080929.4.xml
  4. http://www.tradingmarkets.com/.site/news/Stock%20News/1908093/
  5. http://finance.boston.com/boston?GUID=6699972&Page=MediaViewer&ChannelID=3191
  6. http://www.ariva.de/Sun_Microsystems_and_the_NetBeans_Community_Kick_Off_World_Tour_and_Announce_NetBeans_Innovators_Grant_Winners_n2756794
  7. http://news.moneycentral.msn.com/ticker/article.aspx?Feed=BW&Date=20080929&ID=9201549&Symbol=JAVA
  8. http://www.reuters.com/article/idUS134098+29-Sep-2008+BW20080929
  9. http://www.opennet.ru/opennews/art.shtml?num=18161
  10. http://ca.news.finance.yahoo.com/s/29092008/34/biz-f-business-wire-sun-microsystems-netbeans-community-kick-world-tour-announce.html
  11. http://money.aol.com/news/articles/_a/sun-microsystems-and-the-netbeans/rfid144238885
  12. http://www.ad-hoc-news.de/Sun-Microsystems-and-the-NetBeans-Community-Kick-Off-World--/de/Unternehmensnachrichten/19700849
  13. http://www.tmcnet.com/usubmit/2008/09/29/3674913.htm
  14. http://blogs.sun.com/wen/entry/congratulations_to_the_netbeans_innovators
  15. http://www.google.com.br/search?q=%22alessandro+nascimento+dourado%22+sun

 

Vencedores  Brasileiros do NetBeans Innovators Grant

Thiago (Sun Spot), Carlos e Hugo (Monoh), Alessandro (NB project).  O outro recebeu o prêmio por OpenSolaris/Glassfish.