Package event_manager.models

Source Code of event_manager.models.Client

package event_manager.models;

import event_manager.helpers.DBHelper;
import event_manager.helpers.FileHelper;
import java.awt.Component;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.util.List;
import java.util.Vector;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
import javax.swing.table.TableModel;
import org.apache.commons.lang3.ArrayUtils;
import org.javalite.activejdbc.Model;

/**
*
* @author uzzaldevkota
*/
public class Client extends Model implements AppModel {
    private final PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
    private final String[] columnNames = {
        "id", "name", "created_at", "updated_at"
    };
    private final String tableName = "clients";

    @Override
    public Object getId() {
        return get("id");
    }

    public Object getName() {
        return get("name");
    }

    public void setName(Object name) {
        set("name", name);
        changeSupport.firePropertyChange("name", getName(), name);
    }

    public Object getCreatedAt() {
        return get("created_at");
    }

    public Object getUpdatedAt() {
        return get("updated_at");
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.removePropertyChangeListener(listener);
    }

    @Override
    public TableModel getTableModel(int pageNum) {
        String[] viewableColumns = ArrayUtils.removeElements(columnNames, "created_at");
         return DBHelper.columnsToTableModel(tableName, pageNum, viewableColumns);
    }

    @Override
    public String tableName() {
        return tableName;
    }

    @Override
    public String getShowInfo() {
        String[] replacements = ArrayUtils.removeElements(columnNames, "id", "created_at", "updated_at");
        return FileHelper.getReplacedContents(this, FileHelper.RESOURCES_DIR + "html/client.html", replacements);
    }

    public static ComboBoxModel getComboBoxModel() {
        DBHelper.openConnection();
        List<Client> clients = Client.findAll();
        Vector<Client> items = new Vector<Client>();
        for (Client client : clients) {
            items.addElement(client);
        }
        DBHelper.closeConnection();
        return new DefaultComboBoxModel(items);
    }
   
    public static ListCellRenderer getListCellRenderer() {
        return new DefaultListCellRenderer(){
            @Override
            public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
                Component renderer = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
                if (renderer instanceof JLabel && value instanceof Client) {
                    ((JLabel) renderer).setText(((Client) value).getName().toString());
                }
                return renderer;
            }
        };
    }
}
TOP

Related Classes of event_manager.models.Client

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.