28 de abr. de 2005

Objetos Swing

Estou desenvolvendo alguns objetos do Swing para o projeto desktop que estou trabalhando e qualquer ajuda será bem vinda. A idéia é criar um projeto Open com esses objetos.

Eis o código:

/*
* FloatTextField.java
*
* Created on 20/04/2005 by jp
*
*/

// TODO :
// criar limitador de casas decimais
// criar limitador de casas inteiras
// posicionamneto do cursor e selecao de texto
// trabalhar somente com ponto ou virgula (opcao)
// implementar paste
// implementar rotinas de internaciolização (locale)

package br.com.icbeu.util;

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JTextField;

public class FloatTextField extends JTextField {

public FloatTextField() {
this.addKeyListener((KeyListener) new FloatKeyListener());
setHorizontalAlignment(javax.swing.JTextField.RIGHT);
}

public void paste() {
}

public float getFloat() {
String texto = getText();
if (texto.contains(",")) {
texto = texto.replace(",", ".");
}
float f = 0;
if (texto.length() == 0) texto = "0";
try {
f = Float.parseFloat(texto);
} catch ( Exception e) {
e.printStackTrace();
}
return f;
}


private class FloatKeyListener extends KeyAdapter {
boolean ok = false;

public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();

ok = ((code > 95 && code <>
(code > 47 && code <>
(code == 8) || // backspace
(code == 127) || // delete
(code == 110) || // virgula teclado numerico
(code == 0) || // ponto teclado numerico
(code == 44) || // virgula teclado alfa
(code == 46) // ponto teclado alfa
);

if ((getText().contains(",") || getText().contains("."))
&& (code == 110 || code == 44)) {
ok = false;
}

if ((getText().contains(".") || getText().contains(","))
&& (code == 0 || code == 46)) {
ok = false;
}
}

public void keyTyped(KeyEvent e) {
if (!ok) {
e.consume();
}
}
}
}

Hibernate Synchronizer 2 - A missão

Amigos,

O Hibernate Synchronizer tem um bug crítico na class BaseRootDAO que não permite inicializar mais de uma sessão do Hibernate 2 ou 3.

O problema ocorre em

_RootDAO.initialize("database1.cfg.xml");
_RootDAO.initialize("database2.cfg.xml");

Ele não inicializa as seções. Só funciona com o arquivo de configuração padrão (hibernate.cfg.xml), ou seja, uma única sessão.

_RootDAO.initialize();

Depurei e vi que é fácil corrigir o problema, mas como já tive muitos problemas, resolvi escrever tudo na mão e só estou usando o plugin para gerar as classes POJO...

Entrei em contato com o desenvolvedor e ele pretende implementar esta "feature" em breve.

5 de abr. de 2005

Exercício 02 – Introdução ao Pensamento Gerencial

1) As 5 forças competitivas de M. Porter, considerando as redes de fast food.

a) Competição entre empresas da mesma indústria

A competição de empresas da mesma indústria é um fator positivo para os clientes, pois obriga as empresas a tomarem as seguintes medidas :

  • Reduzir suas margens de lucro, oferecendo seus produtos em melhores preços;
  • Procurar inovações para manterem os seus clientes;
  • Analisar constantemente o negócio para reduzir custos e manter o padrão de qualidade.

Se essas medidas não forem tomadas, há um grande risco da perda de mercado para a concorrência.


b) Ameaça de entrada de novos concorrentes

A ameaça da entrada de novos concorrentes no ramo de fast food é alta, pois a demanda de mercado é grande, e não é necessário um investimento muito alto para entrar com um produto substituto a um custo bastante acessível.

c) Poder dos fornecedores

O poder dos fornecedores é pequeno pois existem várias opções de fornecedores. Para fornecedores exclusivos, a perda do cliente pode ser extremamente significativa para o fornecedor, podendo perder a liderança no seguimento do mercado ou até mesmo o falência.

d) Poder dos clientes

O cliente excerce total controle sobre a rede de fast food, fazendo que esta sempre procure oferecer os melhores produtos, melhores preços e melhor atendimento. Isso obriga os empresários destas redes a fazerem constantes investimentos na qualidade dos serviços e produtos, pois a ameaça da concorrência e dos produtos substitutos é alta.

e) Ameaça da concorrência de produtos substitutos

Os produtos substitutos são um dos grandes concorrentes da indústria de fast food. Além da diversidade de produtos substitutos, esses também são encontrados com muita facilidade.

2) As vatangens competitivas do Habib´s

O Habib´s fez o benchmarking das maiores redes de fast food do mundo, e agregou melhoria nos serviços e a adequação do produto ao mercado nacional e internacional, levando sempre em consideração as preferências regionais de cada consumidor. Além disto, o Habib´s apresenta preços reduzidos, pois a matéria-prima utilizada é fabricada e fornecida pela própria rede Habib´s, fazendo com que a qualidade da matéria prima seja mantida e os preços sejam menores porque não são diretamente indexados ao preços dos fornecedores.


José Paulo

Mais fotos do encontro da ESCM

Mais fotos do amigo oculto de chocolates da minha turma da ESCM. Este fotolog é do meu amigo de turma, Olívio.

3 de abr. de 2005

Fotos do "Amigolate"

Vejam as fotos do "Amigolate" ou "Chocomigo" da minha turma da faculdade ESCM.

Comentem!!

Hibernate Synchronizer....

Resolvi utilizar o Hibernate e apesar do trabalho de criar os arquivos XML na munheca, ajuda muito na criação dos objetos DAO, e é bem melhor que JDBC por causa da abstração. Na intenção de conseguir um pouco de produtividade, experimentei utilizar o plug-in do Eclipse Hibernate Synchronizer para fazer o mapeamento das tabelas do banco de dados.

Problemas do plug-in:

1) Você precisa trabalhar com a resolução do seu monitor a partir de 1024x768. Senão os campos dos formulários do assistente de criação dos .hbm não são exibidos, e consequentemente você não consegue fazer os mapeamentos. Só descobri isso porque abri o projeto em casa no monitor de 17"...

2) Não consigo gerar os arquivos .hbm das minhas tabelas que são relacionadas. Pesquisando a Internet, descobri que existe um bug caso você trabalhe FKs compostas...

Esses "pequenos" problemas estão me levando a abandonar o plug-in...

A minha aplicação é um sistema de caixa que irá gerar informações gerenciais para 3 outros sistemas em base de dados diferentes. Estou utilizando : Linux Mandrake 9.1 e banco de Firebird 1.5.2 com Java (Eclipse, Swing, Hibernate 2.1, JBOSS, Firebird 1.5.2)