diff --git a/.gitignore b/.gitignore index ce0fb70..5945bd4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ out lib .idea -dist/data -dist/logs +dist/local-release/data +dist/local-release/logs +dist/mackena-release +dist/rodriguez-release + diff --git a/dist/Programa Caja.jar b/dist/local-release/Programa Caja.jar similarity index 97% rename from dist/Programa Caja.jar rename to dist/local-release/Programa Caja.jar index 49e494c..1b798cc 100644 Binary files a/dist/Programa Caja.jar and b/dist/local-release/Programa Caja.jar differ diff --git a/dist/config/app.properties b/dist/local-release/config/app.properties similarity index 100% rename from dist/config/app.properties rename to dist/local-release/config/app.properties diff --git a/dist/config/logging.properties b/dist/local-release/config/logging.properties similarity index 100% rename from dist/config/logging.properties rename to dist/local-release/config/logging.properties diff --git a/dist/logs/.gitignore b/dist/logs/.gitignore deleted file mode 100644 index e69de29..0000000 diff --git a/src/danielcortes/xyz/controllers/EgresosController.java b/src/danielcortes/xyz/controllers/EgresosController.java index 513e66d..cae753e 100644 --- a/src/danielcortes/xyz/controllers/EgresosController.java +++ b/src/danielcortes/xyz/controllers/EgresosController.java @@ -29,6 +29,7 @@ import danielcortes.xyz.data.DAOManager; import danielcortes.xyz.models.caja.Caja; import danielcortes.xyz.models.egreso.Egreso; import danielcortes.xyz.models.tipo_egreso.TipoEgreso; +import danielcortes.xyz.models.tipo_egreso.TipoEgresoToStringWrapper; import danielcortes.xyz.views.EgresosView; import danielcortes.xyz.views.components.table_model.EgresosTableModel; @@ -76,9 +77,9 @@ public class EgresosController { * Rellena el ComboBox con los tipos de egresos disponibles */ private void fillTipoEgresoCombo() { - JComboBox tipoCombo = view.getTipoCombo(); + JComboBox tipoCombo = view.getTipoCombo(); for (TipoEgreso tipoEgreso : DAOManager.getTipoEgresoDAO().findAll()) { - tipoCombo.addItem(tipoEgreso); + tipoCombo.addItem(new TipoEgresoToStringWrapper(tipoEgreso)); } } diff --git a/src/danielcortes/xyz/controllers/IngresosController.java b/src/danielcortes/xyz/controllers/IngresosController.java index 56ab081..0a7b24e 100644 --- a/src/danielcortes/xyz/controllers/IngresosController.java +++ b/src/danielcortes/xyz/controllers/IngresosController.java @@ -28,6 +28,7 @@ import danielcortes.xyz.data.DAOManager; import danielcortes.xyz.models.caja.Caja; import danielcortes.xyz.models.ingreso.Ingreso; import danielcortes.xyz.models.tipo_ingreso.TipoIngreso; +import danielcortes.xyz.models.tipo_ingreso.TipoIngresoToStringWrapper; import danielcortes.xyz.views.IngresosView; import danielcortes.xyz.views.components.table_model.IngresosTableModel; @@ -76,9 +77,9 @@ public class IngresosController { * LLena el combobox de tipos de ingresos */ private void fillTipoIngresoCombo() { - JComboBox tipoCombo = this.view.getTipoCombo(); + JComboBox tipoCombo = this.view.getTipoCombo(); for (TipoIngreso tipo : DAOManager.getTipoIngresoDAO().findAll()) { - tipoCombo.addItem(tipo); + tipoCombo.addItem(new TipoIngresoToStringWrapper(tipo)); } } @@ -169,6 +170,7 @@ public class IngresosController { DAOManager.getIngresoDAO().deleteIngreso(ingreso); this.updateTotalIngresos(); this.updateButtonsEnabled(); + this.resetFocus(); } } diff --git a/src/danielcortes/xyz/models/tipo_egreso/TipoEgresoToStringWrapper.java b/src/danielcortes/xyz/models/tipo_egreso/TipoEgresoToStringWrapper.java new file mode 100644 index 0000000..bb3e19b --- /dev/null +++ b/src/danielcortes/xyz/models/tipo_egreso/TipoEgresoToStringWrapper.java @@ -0,0 +1,13 @@ +package danielcortes.xyz.models.tipo_egreso; + +public class TipoEgresoToStringWrapper extends TipoEgreso { + public TipoEgresoToStringWrapper(TipoEgreso tipoEgreso){ + this.setId(tipoEgreso.getId()); + this.setNombre(tipoEgreso.getNombre()); + } + + @Override + public String toString() { + return this.getNombre(); + } +} diff --git a/src/danielcortes/xyz/models/tipo_ingreso/TipoIngresoToStringWrapper.java b/src/danielcortes/xyz/models/tipo_ingreso/TipoIngresoToStringWrapper.java new file mode 100644 index 0000000..39ace4d --- /dev/null +++ b/src/danielcortes/xyz/models/tipo_ingreso/TipoIngresoToStringWrapper.java @@ -0,0 +1,14 @@ +package danielcortes.xyz.models.tipo_ingreso; + +public class TipoIngresoToStringWrapper extends TipoIngreso{ + public TipoIngresoToStringWrapper(TipoIngreso tipoIngreso) { + this.setId(tipoIngreso.getId()); + this.setNombre(tipoIngreso.getNombre()); + } + + + @Override + public String toString() { + return this.getNombre(); + } +} diff --git a/src/danielcortes/xyz/views/EgresosView.java b/src/danielcortes/xyz/views/EgresosView.java index e84a961..56d2ad8 100644 --- a/src/danielcortes/xyz/views/EgresosView.java +++ b/src/danielcortes/xyz/views/EgresosView.java @@ -27,8 +27,7 @@ package danielcortes.xyz.views; import com.intellij.uiDesigner.core.GridConstraints; import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.core.Spacer; -import danielcortes.xyz.models.tipo_egreso.TipoEgreso; -import danielcortes.xyz.views.components.KeySelectionRenderer; +import danielcortes.xyz.models.tipo_egreso.TipoEgresoToStringWrapper; import danielcortes.xyz.views.components.NumberFormatedTextField; import danielcortes.xyz.views.components.table_model.EgresosTableModel; @@ -44,7 +43,7 @@ public class EgresosView { private JTextField descripcionField; private JTextField nroField; private NumberFormatedTextField totalEgresosField; - private JComboBox tipoCombo; + private JComboBox tipoCombo; private JButton eliminarButton; @@ -72,13 +71,6 @@ public class EgresosView { private void createTipoCombo() { this.tipoCombo = new JComboBox<>(); - KeySelectionRenderer renderer = new KeySelectionRenderer(this.tipoCombo) { - @Override - public String getDisplayValue(Object value) { - TipoEgreso tipoEgreso = (TipoEgreso) value; - return tipoEgreso.getNombre(); - } - }; } public JPanel getContentPanel() { @@ -113,7 +105,7 @@ public class EgresosView { return totalEgresosField; } - public JComboBox getTipoCombo() { + public JComboBox getTipoCombo() { return tipoCombo; } diff --git a/src/danielcortes/xyz/views/IngresosView.java b/src/danielcortes/xyz/views/IngresosView.java index 3c1a0d1..81e9a5f 100644 --- a/src/danielcortes/xyz/views/IngresosView.java +++ b/src/danielcortes/xyz/views/IngresosView.java @@ -28,7 +28,7 @@ import com.intellij.uiDesigner.core.GridConstraints; import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.core.Spacer; import danielcortes.xyz.models.tipo_ingreso.TipoIngreso; -import danielcortes.xyz.views.components.KeySelectionRenderer; +import danielcortes.xyz.models.tipo_ingreso.TipoIngresoToStringWrapper; import danielcortes.xyz.views.components.NumberFormatedTextField; import danielcortes.xyz.views.components.table_model.IngresosTableModel; @@ -43,7 +43,7 @@ public class IngresosView { private JButton eliminarButton; private NumberFormatedTextField totalIngresoField; private NumberFormatedTextField valorField; - private JComboBox tipoCombo; + private JComboBox tipoCombo; private JLabel errorTipoIngreso; private JLabel errorValor; private JButton editarButton; @@ -74,13 +74,6 @@ public class IngresosView { private void createTipoCombo() { this.tipoCombo = new JComboBox<>(); - KeySelectionRenderer renderer = new KeySelectionRenderer(this.tipoCombo) { - @Override - public String getDisplayValue(Object value) { - TipoIngreso tipoIngreso = (TipoIngreso) value; - return tipoIngreso.getNombre(); - } - }; } public JPanel getContentPanel() { @@ -107,7 +100,7 @@ public class IngresosView { return valorField; } - public JComboBox getTipoCombo() { + public JComboBox getTipoCombo() { return tipoCombo; } diff --git a/src/danielcortes/xyz/views/components/KeySelectionRenderer.java b/src/danielcortes/xyz/views/components/KeySelectionRenderer.java deleted file mode 100644 index 6b8afc2..0000000 --- a/src/danielcortes/xyz/views/components/KeySelectionRenderer.java +++ /dev/null @@ -1,99 +0,0 @@ -package danielcortes.xyz.views.components; - -import javax.swing.*; -import java.awt.*; - -public abstract class KeySelectionRenderer extends DefaultListCellRenderer implements JComboBox.KeySelectionManager { - private long timeFactor; - private long lastTime; - private long time; - private String prefix = ""; - - public KeySelectionRenderer(JComboBox comboBox) { - comboBox.setRenderer(this); - comboBox.setKeySelectionManager(this); - - Long l = (Long) UIManager.get("ComboBox.timeFactor"); - timeFactor = l == null ? 1000L : l.longValue(); - } - - public abstract String getDisplayValue(Object item); - - - @Override - public Component getListCellRendererComponent( - JList list, Object item, int index, boolean isSelected, boolean hasFocus) { - super.getListCellRendererComponent(list, item, index, isSelected, hasFocus); - - if (item != null) { - setText(getDisplayValue(item)); - } - - return this; - } - - - @Override - public int selectionForKey(char aKey, ComboBoxModel model) { - time = System.currentTimeMillis(); - - // Get the index of the currently selected item - - int size = model.getSize(); - int startIndex = -1; - Object selectedItem = model.getSelectedItem(); - - if (selectedItem != null) { - for (int i = 0; i < size; i++) { - if (selectedItem == model.getElementAt(i)) { - startIndex = i; - break; - } - } - } - - - if (time - lastTime < timeFactor) { - if ((prefix.length() == 1) && (aKey == prefix.charAt(0))) { - startIndex++; - } else { - prefix += aKey; - } - } else { - startIndex++; - prefix = "" + aKey; - } - - lastTime = time; - - - if (startIndex < 0 || startIndex >= size) { - startIndex = 0; - } - - int index = getNextMatch(prefix, startIndex, size, model); - - if (index < 0) { - // wrap - index = getNextMatch(prefix, 0, startIndex, model); - } - - return index; - } - - private int getNextMatch(String prefix, int start, int end, ComboBoxModel model) { - for (int i = start; i < end; i++) { - Object item = model.getElementAt(i); - - if (item != null) { - String displayValue = getDisplayValue(item).toLowerCase(); - - if (displayValue.startsWith(prefix)) { - return i; - } - } - } - - return -1; - } -} diff --git a/src/danielcortes/xyz/views/components/table_model/EgresosTableModel.java b/src/danielcortes/xyz/views/components/table_model/EgresosTableModel.java index 94b2c50..4786a97 100644 --- a/src/danielcortes/xyz/views/components/table_model/EgresosTableModel.java +++ b/src/danielcortes/xyz/views/components/table_model/EgresosTableModel.java @@ -35,7 +35,6 @@ public class EgresosTableModel extends AbstractTableModel { private ArrayList rows; private NumberFormat nf; - public EgresosTableModel() { super(); this.columns = new String[]{"N°", "Descripcion", "Valor", "Tipo"}; @@ -59,6 +58,21 @@ public class EgresosTableModel extends AbstractTableModel { return rows.size(); } + @Override + public Object getValueAt(int row, int col) { + switch (col) { + case 0: + return rows.get(row).getNro(); + case 1: + return rows.get(row).getDescripcion(); + case 2: + return nf.format(rows.get(row).getValor()); + case 3: + return rows.get(row).getTipoEgreso().getNombre(); + } + return null; + } + public void addRow(Egreso egreso) { rows.add(egreso); this.fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1); @@ -78,28 +92,13 @@ public class EgresosTableModel extends AbstractTableModel { } } + public Egreso getEgreso(int row) { + return rows.get(row); + } + public void setEgreso(int editingId, Egreso egreso) { this.rows.set(editingId, egreso); this.fireTableRowsUpdated(0, getRowCount() - 1); } - @Override - public Object getValueAt(int row, int col) { - switch (col) { - case 0: - return rows.get(row).getNro(); - case 1: - return rows.get(row).getDescripcion(); - case 2: - return nf.format(rows.get(row).getValor()); - case 3: - return rows.get(row).getTipoEgreso(); - } - return null; - } - - public Egreso getEgreso(int row) { - return rows.get(row); - } - } diff --git a/src/danielcortes/xyz/views/components/table_model/IngresosTableModel.java b/src/danielcortes/xyz/views/components/table_model/IngresosTableModel.java index e48f67a..0059a82 100644 --- a/src/danielcortes/xyz/views/components/table_model/IngresosTableModel.java +++ b/src/danielcortes/xyz/views/components/table_model/IngresosTableModel.java @@ -57,24 +57,6 @@ public class IngresosTableModel extends AbstractTableModel { return this.rows.size(); } - public void addRow(Ingreso ingreso) { - this.rows.add(ingreso); - this.fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1); - } - - public void removeRow(int row) { - this.rows.remove(row); - this.fireTableRowsDeleted(row, row); - } - - public void removeRows() { - int rowCount = getRowCount(); - if (rowCount > 0) { - this.rows.clear(); - this.fireTableRowsDeleted(0, rowCount - 1); - } - } - @Override public Object getValueAt(int row, int col) { switch (col) { @@ -94,6 +76,24 @@ public class IngresosTableModel extends AbstractTableModel { return null; } + public void addRow(Ingreso ingreso) { + this.rows.add(ingreso); + this.fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1); + } + + public void removeRow(int row) { + this.rows.remove(row); + this.fireTableRowsDeleted(row, row); + } + + public void removeRows() { + int rowCount = getRowCount(); + if (rowCount > 0) { + this.rows.clear(); + this.fireTableRowsDeleted(0, rowCount - 1); + } + } + public Ingreso getIngreso(int row) { return this.rows.get(row); }