/*
* MediathekView
* Copyright (C) 2008 W. Xaver
* W.Xaver[at]googlemail.com
* http://zdfmediathk.sourceforge.net/
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package mediathek.gui.dialogEinstellungen;
import mediathek.config.Daten;
import mediathek.config.MVColor;
import mediathek.gui.PanelVorlage;
import mediathek.tool.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import static mediathek.config.MVColor.*;
@SuppressWarnings("serial")
public class PanelEinstellungenColor extends PanelVorlage {
public PanelEinstellungenColor(Daten d, JFrame pparentComponent) {
super(d, pparentComponent);
initComponents();
daten = d;
init();
}
private void init() {
jTable1.addMouseListener(new BeobMausTabelle());
jTable1.setDefaultRenderer(MVC.class, new CellRendererColor());
jTable1.setModel(getModel());
jButtonReset.addActionListener(e -> {
Daten.mVColor.reset();
GuiFunktionen.updateGui(daten.getMediathekGui());
Daten.mVColor.save();
});
}
private void getColor(MVC mvc) {
DialogFarbe dialog = new DialogFarbe(parentComponent, true, mvc.color);
dialog.setVisible(true);
if (dialog.farbe != null) {
if (!dialog.farbe.equals(mvc.color)) {
mvc.set(dialog.farbe);
jTable1.setModel(getModel());
GuiFunktionen.updateGui(daten.getMediathekGui());
Daten.mVColor.save();
}
}
}
private TModel getModel() {
Object[] object;
TModelColor tModel = new TModelColor(new Object[][]{}, new String[]{"Beschreibung", "Farbe"});
tModel.setRowCount(0);
for (MVC mvc : Daten.mVColor.liste) {
object = new Object[MVC_MAX];
object[MVC_TEXT] = mvc.text;
object[MVC_COLOR] = mvc;
tModel.addRow(object);
}
return tModel;
}
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
javax.swing.ButtonGroup buttonGroup1 = new javax.swing.ButtonGroup();
javax.swing.JScrollPane jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jButtonReset = new javax.swing.JButton();
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);
jButtonReset.setText("Farben zurücksetzen");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 413, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jButtonReset)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 221, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButtonReset)
.addContainerGap())
);
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButtonReset;
private javax.swing.JTable jTable1;
// End of variables declaration//GEN-END:variables
public class BeobMausTabelle extends MouseAdapter {
private Point p;
@Override
public void mouseClicked(MouseEvent arg0) {
if (arg0.getButton() == MouseEvent.BUTTON1) {
if (arg0.getClickCount() == 1) {
p = arg0.getPoint();
int row = jTable1.rowAtPoint(p);
int column = jTable1.columnAtPoint(p);
if (row >= 0) {
MVC mvc = (MVC) jTable1.getModel().getValueAt(jTable1.convertRowIndexToModel(row), MVColor.MVC_COLOR);
if (jTable1.convertColumnIndexToModel(column) == MVColor.MVC_COLOR) {
getColor(mvc);
}
}
}
}
}
}
}