Se me olvido incluir un par de archivos .w.

This commit is contained in:
Daniel Cortes
2019-01-20 23:40:53 -03:00
parent 35a908d3bf
commit 7d8aab0f24
4 changed files with 411 additions and 0 deletions

View File

@@ -0,0 +1,99 @@
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;
}
}

View File

@@ -0,0 +1,105 @@
/*
* MIT License
*
* Copyright (c) 2018-2019 Daniel Cortes
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package danielcortes.xyz.views.components.table_model;
import danielcortes.xyz.models.egreso.Egreso;
import javax.swing.table.AbstractTableModel;
import java.text.NumberFormat;
import java.util.ArrayList;
public class EgresosTableModel extends AbstractTableModel {
private String[] columns;
private ArrayList<Egreso> rows;
private NumberFormat nf;
public EgresosTableModel() {
super();
this.columns = new String[]{"", "Descripcion", "Valor", "Tipo"};
this.rows = new ArrayList<>();
this.nf = NumberFormat.getIntegerInstance();
}
@Override
public String getColumnName(int col) {
return columns[col];
}
@Override
public int getColumnCount() {
return columns.length;
}
@Override
public int getRowCount() {
return rows.size();
}
public void addRow(Egreso egreso) {
rows.add(egreso);
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 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);
}
}

View File

@@ -0,0 +1,101 @@
/*
* MIT License
*
* Copyright (c) 2018-2019 Daniel Cortes
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package danielcortes.xyz.views.components.table_model;
import danielcortes.xyz.models.calculo_fondo.CalculoFondo;
import javax.swing.table.AbstractTableModel;
import java.text.NumberFormat;
import java.util.ArrayList;
public class FondoTableModel extends AbstractTableModel {
private String[] columns;
private ArrayList<CalculoFondo> rows;
private NumberFormat nf;
public FondoTableModel() {
super();
this.columns = new String[]{"Valor", "Descripcion"};
this.rows = new ArrayList<>();
this.nf = NumberFormat.getIntegerInstance();
}
@Override
public String getColumnName(int col) {
return columns[col];
}
@Override
public int getColumnCount() {
return columns.length;
}
@Override
public int getRowCount() {
return rows.size();
}
public void addRow(CalculoFondo calculoFondo) {
rows.add(calculoFondo);
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 void setCalculoFondo(int editingId, CalculoFondo calculoFondo) {
this.rows.set(editingId, calculoFondo);
this.fireTableRowsUpdated(0, getRowCount() - 1);
}
@Override
public Object getValueAt(int row, int col) {
switch (col) {
case 0:
return nf.format(rows.get(row).getValor());
case 1:
return rows.get(row).getDescripcion();
}
return null;
}
public CalculoFondo getCalculoFondo(int row) {
return rows.get(row);
}
}

View File

@@ -0,0 +1,106 @@
/*
* MIT License
*
* Copyright (c) 2018-2019 Daniel Cortes
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package danielcortes.xyz.views.components.table_model;
import danielcortes.xyz.models.ingreso.Ingreso;
import javax.swing.table.AbstractTableModel;
import java.text.NumberFormat;
import java.util.ArrayList;
public class IngresosTableModel extends AbstractTableModel {
private String[] columns;
private ArrayList<Ingreso> rows;
private NumberFormat nf;
public IngresosTableModel() {
super();
this.columns = new String[]{"Valor", "N° Z Inicial", "N° Z Final", "N° Inicial", "N° Final", "Tipo"};
this.rows = new ArrayList<>();
this.nf = NumberFormat.getIntegerInstance();
}
@Override
public String getColumnName(int col) {
return this.columns[col];
}
@Override
public int getColumnCount() {
return this.columns.length;
}
@Override
public int getRowCount() {
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) {
case 0:
return nf.format(this.rows.get(row).getValor());
case 1:
return this.rows.get(row).getNroZInicial();
case 2:
return this.rows.get(row).getNroZFinal();
case 3:
return this.rows.get(row).getNroInicial();
case 4:
return this.rows.get(row).getNroFinal();
case 5:
return this.rows.get(row).getTipoIngreso().getNombre();
}
return null;
}
public Ingreso getIngreso(int row) {
return this.rows.get(row);
}
public void setIngreso(int editingId, Ingreso ingreso) {
this.rows.set(editingId, ingreso);
this.fireTableRowsUpdated(getRowCount() - 2, getRowCount() - 1);
}
}