All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.alexfalappa.nbspringboot.projects.customizer.CfgParamsTableModel Maven / Gradle / Ivy

/*
 * Copyright 2016 Alessandro Falappa.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.github.alexfalappa.nbspringboot.projects.customizer;

import java.util.LinkedList;
import java.util.List;

import javax.swing.table.AbstractTableModel;

/**
 * An editable {@code JTable} model holding {@link CfgOverride} objects.
 * 

* Backed by a {@link LinkedList}. * * @author Alessandro Falappa */ public class CfgParamsTableModel extends AbstractTableModel { List overrides = new LinkedList<>(); @Override public int getRowCount() { return overrides.size(); } @Override public int getColumnCount() { return 3; } @Override public Object getValueAt(int rowIndex, int columnIndex) { CfgOverride co = overrides.get(rowIndex); switch (columnIndex) { case 0: return co.enabled; case 1: return co.name; case 2: return co.value; default: return null; } } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return true; } @Override public String getColumnName(int columnIndex) { switch (columnIndex) { case 0: return "En."; case 1: return "Name"; case 2: return "Value"; default: return super.getColumnName(columnIndex); } } @Override public Class getColumnClass(int columnIndex) { switch (columnIndex) { case 0: return Boolean.class; case 1: case 2: return String.class; default: return null; } } @Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { if (rowIndex >= 0 && rowIndex < overrides.size()) { CfgOverride co = overrides.get(rowIndex); switch (columnIndex) { case 0: if (aValue instanceof Boolean) { co.enabled = (Boolean) aValue; } break; case 1: if (aValue instanceof String) { co.name = (String) aValue; } break; case 2: if (aValue instanceof String) { co.value = (String) aValue; } break; } fireTableCellUpdated(rowIndex, columnIndex); } } public List getOverrides() { return overrides; } public List getEnabledOverrides() { List ret = new LinkedList<>(); for (CfgOverride ov : overrides) { if (ov.enabled) { ret.add(ov); } } return ret; } public CfgOverride getOverrideAt(int idx) { return overrides.get(idx); } public void addOverride(CfgOverride override) { overrides.add(override); final int numOverrides = overrides.size(); fireTableRowsInserted(numOverrides - 1, numOverrides - 1); } public CfgOverride removeOverride(int selRow) { final CfgOverride removed = overrides.remove(selRow); fireTableRowsDeleted(selRow, selRow); return removed; } public void removeAllOverrides() { int oldSize = overrides.size(); overrides.clear(); fireTableRowsDeleted(0, oldSize - 1); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy