From d6b09410fc8939a359c37cd9b914ae7c811d2577 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tiago=20Sim=C3=A3o?= Date: Wed, 19 Dec 2007 11:04:04 +0000 Subject: [PATCH] git-svn-id: https://svn.coded.pt/svn/SIPRP@612 bb69d46d-e84e-40c8-a05a-06db0d633741 --- .../medicina/processo/ui/LeafInputField.java | 2 +- .../processo/ui/LeafOptionDialog.java | 71 ++++++++++++++----- .../processo/ui/ProcessoAccoesPanel.java | 47 +++++------- .../processo/ui/ProcessoDadosPanel.java | 15 +++- .../processo/ui/ProcessoTreePanel.java | 2 +- 5 files changed, 85 insertions(+), 52 deletions(-) diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/LeafInputField.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/LeafInputField.java index 086a8fe6..49a2982c 100644 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/LeafInputField.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/LeafInputField.java @@ -155,7 +155,7 @@ public class LeafInputField extends JTextArea private Object getOptionFromUser() { - LeafOptionDialog optionDialog = new LeafOptionDialog( getParentFrame(), this, (Map) object ); + LeafOptionDialog optionDialog = new LeafOptionDialog( getParentFrame(), this, (Map) object ); return optionDialog.getOption(); } diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/LeafOptionDialog.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/LeafOptionDialog.java index 1e9d642e..91d87e2d 100644 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/LeafOptionDialog.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/LeafOptionDialog.java @@ -14,20 +14,47 @@ import javax.swing.BorderFactory; import javax.swing.JComponent; import javax.swing.JDialog; import javax.swing.JFrame; +import javax.swing.JLabel; -public class LeafOptionDialog extends JDialog +public class LeafOptionDialog extends JDialog { private static final long serialVersionUID = 1L; - private Map map = null; + private static final String CANCEL_LABEL = "Cancelar"; - private Object selected = null; + private final JLabel labelMessage = new JLabel(); + + private Map map = null; + + private KeyClass selected = null; + + private String message = null; /** Creates a new instance of JCalendarDialog */ - public LeafOptionDialog(JFrame parentFrame, JComponent parent, Map map) + public LeafOptionDialog(JFrame parentFrame, JComponent parent, Map map) { super( parentFrame ); - this.map = map == null ? new HashMap() : map; + startup( parent, map ); + } + + /** Creates a new instance of JCalendarDialog */ + public LeafOptionDialog(JFrame parentFrame, JComponent parent, Map map, String message) + { + super( parentFrame ); + this.message = message; + startup( parent, map ); + } + + private void startup( JComponent parent, Map map ) + { + if( map == null ) + { + this.map = new HashMap(); + } + else + { + this.map = map; + } setModal( true ); setupComponents(); setUndecorated( true ); @@ -37,12 +64,15 @@ public class LeafOptionDialog extends JDialog private void setupComponents() { - Set keySet = map.keySet(); + Set keySet = map.keySet(); + Iterator iterator = keySet.iterator(); + KeyClass current = null; + double[] cols = new double[] { TableLayout.MINIMUM }; - double[] rows = new double[keySet.size() + 1]; - for( int i = 0; i < keySet.size() + 1; ++i ) + double[] rows = new double[message == null ? 0 : 1 + keySet.size() + 1]; + for( int i = 0; i < rows.length; ++i ) { rows[i] = TableLayout.MINIMUM; } @@ -50,31 +80,34 @@ public class LeafOptionDialog extends JDialog layout.setVGap( 3 ); setContentPane( new LeafGradientPanel() ); getContentPane().setLayout( layout ); - Iterator iterator = keySet.iterator(); - Object current = null;; - for( int i = 0; i < keySet.size() && iterator.hasNext(); ++i ) + + int shift = 0; + if( message != null ) + { + labelMessage.setText( message ); + getContentPane().add( labelMessage, new TableLayoutConstraints( 0, shift++ ) ); + } + for( int i = 0; i < keySet.size() && iterator.hasNext(); ++i ) { current = iterator.next(); LeafInputField component = new LeafInputField(); component.setObject( map.get( current ) ); - getContentPane().add( component, new TableLayoutConstraints( 0, i ) ); + getContentPane().add( component, new TableLayoutConstraints( 0, i + shift ) ); addListenerToComponent( component ); } LeafInputField cancelButton = new LeafInputField(); - cancelButton.setObject( "Cancelar" ); - getContentPane().add( cancelButton, new TableLayoutConstraints( 0, keySet.size() ) ); + cancelButton.setObject( CANCEL_LABEL ); + getContentPane().add( cancelButton, new TableLayoutConstraints( 0, keySet.size() + shift ) ); addListenerToComponent( cancelButton ); ((JComponent) getContentPane()).setBorder( BorderFactory.createRaisedBevelBorder() ); setSize( layout.preferredLayoutSize( this.getContentPane() ) ); } - - - private Object getKeyForValue( Object value ) + private KeyClass getKeyForValue( Object value ) { if( value != null && map.containsValue( value ) ) { - for( Object key : map.keySet() ) + for( KeyClass key : map.keySet() ) { if( map.get( key ).equals( value ) ) { @@ -127,7 +160,7 @@ public class LeafOptionDialog extends JDialog } ); } - public Object getOption() + public KeyClass getOption() { return selected; } diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoAccoesPanel.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoAccoesPanel.java index f09e49fe..3210854d 100755 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoAccoesPanel.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoAccoesPanel.java @@ -64,7 +64,7 @@ public class ProcessoAccoesPanel extends JPanel private final JPanel cardPanel = new JPanel(); - private final JPanel controlPanel = new JPanel(); + // private final JPanel controlPanel = new JPanel(); private final CardLayout cardLayout = new CardLayout(); @@ -92,7 +92,9 @@ public class ProcessoAccoesPanel extends JPanel CREATE_CONSULTA, CREATE_CONSULTA_MARCACAO }, onChange = "") public final LeafButton buttonNovoProcessoConsulta = new LeafButton( "Nova Consulta" ); - @ActionActivation(onSelect = { CREATE_EXAME,CREATE_EXAME_MARCACAO }, onChange = "") + @ActionActivation(onSelect = { + CREATE_EXAME, CREATE_EXAME_MARCACAO + }, onChange = "") public final LeafButton buttonNovoProcessoExame = new LeafButton( "Novo Exame" ); // consulta @@ -134,8 +136,6 @@ public class ProcessoAccoesPanel extends JPanel // control - public final LeafButton buttonControlClose = new LeafButton( "Fechar" ); - public ProcessoAccoesPanel(SIPRPWindow parentWindow) { this.parentWindow = parentWindow; @@ -149,20 +149,10 @@ public class ProcessoAccoesPanel extends JPanel TableLayout layout = new TableLayout( new double[] { TableLayout.FILL }, new double[] { - TableLayout.MINIMUM, TableLayout.FILL, TableLayout.MINIMUM + TableLayout.FILL } ); this.setLayout( layout ); - cardPanel.setLayout( cardLayout ); - - layout = new TableLayout( new double[] { - TableLayout.FILL, TableLayout.FILL - }, new double[] { - TableLayout.MINIMUM, TableLayout.MINIMUM - } ); - layout.setVGap( 5 ); - layout.setHGap( 5 ); - controlPanel.setLayout( layout ); } private void setupComponents() @@ -186,16 +176,7 @@ public class ProcessoAccoesPanel extends JPanel cardPanel.add( panelConsultaMarcacao, PANEL_CONSULTA_MARCACAO_NAME ); cardPanel.add( panelExame, PANEL_EXAME_NAME ); cardPanel.add( panelExameMarcacao, PANEL_EXAME_MARCACAO_NAME ); - - // controlPanel.add( buttonControlSave, new TableLayoutConstraints(0,0) - // ); - // controlPanel.add( buttonControlRevert, new - // TableLayoutConstraints(1,0) ); - controlPanel.add( buttonControlClose, new TableLayoutConstraints( 0, 1, 1, 1 ) ); - this.add( cardPanel, new TableLayoutConstraints( 0, 0 ) ); - this.add( new JPanel(), new TableLayoutConstraints( 0, 1 ) ); - this.add( controlPanel, new TableLayoutConstraints( 0, 2 ) ); } @LeafUIActionBinding(action = { @@ -262,7 +243,7 @@ public class ProcessoAccoesPanel extends JPanel break; } } - buttonNovoConsultaMarcacao.setEnabled( !marcacaoAberta && !new Integer(MedicinaConstants.ESTADO_REALIZADO).equals( consulta.getEstado() )); + buttonNovoConsultaMarcacao.setEnabled( !marcacaoAberta && !new Integer( MedicinaConstants.ESTADO_REALIZADO ).equals( consulta.getEstado() ) ); cardLayout.show( cardPanel, PANEL_CONSULTA_NAME ); } else @@ -278,7 +259,7 @@ public class ProcessoAccoesPanel extends JPanel { boolean porRealizar = new Integer( MedicinaConstants.ESTADO_POR_REALIZAR ).equals( marcacao.getEstado() ); List list = marcacao.getTrabalhadoresConsultasDatasObservacoesArray(); - boolean noObservacoes = (list == null || list.size() == 0) ? true : false; + boolean noObservacoes = (list == null || list.size() == 0) ? true : false; buttonConsultaMarcacaoDesmarcar.setEnabled( porRealizar ); buttonConsultaMarcacaoFaltou.setEnabled( porRealizar ); buttonConsultaMarcacaoRealizar.setEnabled( porRealizar ); @@ -335,7 +316,7 @@ public class ProcessoAccoesPanel extends JPanel { if( marcacao != null ) { - + cardLayout.show( cardPanel, PANEL_EXAME_MARCACAO_NAME ); } else @@ -372,8 +353,6 @@ public class ProcessoAccoesPanel extends JPanel private void setupStartPanel() { - // panelStart.setBorder( BorderFactory.createTitledBorder( - // BorderFactory.createEtchedBorder(), "none" ) ); } private void setupTrabalhadorPanel() @@ -393,7 +372,15 @@ public class ProcessoAccoesPanel extends JPanel private void setupConsultaMarcacaoPanel() { - setupSimpleActionsPanel( panelConsultaMarcacao, buttonNovoConsultaMarcacaoEmail, buttonNovoConsultaMarcacaoObservacoes, buttonConsultaMarcacaoRealizar, buttonConsultaMarcacaoDesmarcar, buttonConsultaMarcacaoFaltou, new JPanel() ); + JPanel consultaMarcacaoUpperPanel = new JPanel(); + JPanel consultaMarcacaoLowerPanel = new JPanel(); + setupSimpleActionsPanel( consultaMarcacaoUpperPanel, buttonNovoConsultaMarcacaoEmail, buttonNovoConsultaMarcacaoObservacoes ); + setupSimpleActionsPanel( consultaMarcacaoLowerPanel, buttonConsultaMarcacaoRealizar, buttonConsultaMarcacaoDesmarcar, buttonConsultaMarcacaoFaltou); + TableLayout consultaMarcacaoLayout = new TableLayout(new double[]{TableLayout.FILL}, new double[]{TableLayout.MINIMUM, TableLayout.FILL,TableLayout.MINIMUM}); + panelConsultaMarcacao.setLayout( consultaMarcacaoLayout ); + panelConsultaMarcacao.add( consultaMarcacaoUpperPanel, new TableLayoutConstraints(0,0) ); + panelConsultaMarcacao.add( new JPanel(), new TableLayoutConstraints(0,1) ); + panelConsultaMarcacao.add( consultaMarcacaoLowerPanel, new TableLayoutConstraints(0,2) ); } private void setupExamePanel() diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoDadosPanel.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoDadosPanel.java index 9d5c239d..63248bbd 100755 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoDadosPanel.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoDadosPanel.java @@ -52,6 +52,7 @@ import siprp.database.cayenne.objects.TrabalhadoresEcdsDatasEmails; import siprp.database.cayenne.objects.TrabalhadoresEcdsDatasObservacoes; import siprp.database.cayenne.objects.TrabalhadoresProcesso; import siprp.logic.SIPRPLogic.LeafUIActionBinding; +import siprp.medicina.processo.ProcessoConstants; import siprp.ui.SIPRPWindow; import siprp.ui.SIPRPWindow.ActionActivation; @@ -424,7 +425,19 @@ public class ProcessoDadosPanel extends JPanel cardLayout.show( this, PANEL_TRABALHADOR_NAME ); } } - + + @LeafUIActionBinding(action = CREATE_PROCESSO) + public void setForNewProcesso( TrabalhadoresProcesso processo ) + { + HashMap tipos = processo.getMotivos(); + LeafOptionDialog option = new LeafOptionDialog(getParentFrame(), this, tipos, "Escolha o tipo de processo:"); + Integer chosen = option.getOption(); + if(chosen != null) + { + processo.setMotivo( chosen ); + } + } + @LeafUIActionBinding(action = CREATE_CONSULTA) public void setForNewConsulta( TrabalhadoresConsultas consulta ) { diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoTreePanel.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoTreePanel.java index 1e448c04..7902d10e 100755 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoTreePanel.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoTreePanel.java @@ -368,7 +368,7 @@ public class ProcessoTreePanel extends JPanel private DefaultMutableTreeNode getSelectedNode() { DefaultMutableTreeNode result = null; - Object[] nodes = mainTree.getSelectionPath().getPath(); + Object[] nodes = mainTree.getSelectionPath() == null ? null : mainTree.getSelectionPath().getPath(); if( nodes != null && nodes.length > 0 && nodes[nodes.length - 1] instanceof DefaultMutableTreeNode ) { result = (DefaultMutableTreeNode) nodes[nodes.length - 1];