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

org.jsoftware.impl.JTablePatchStateRenderer Maven / Gradle / Ivy

package org.jsoftware.impl;

import org.jsoftware.config.AbstractPatch;
import org.jsoftware.config.Patch;
import org.jsoftware.config.RollbackPatch;

import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import java.awt.*;

public class JTablePatchStateRenderer extends DefaultTableCellRenderer {

	public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        Component component = null;
        Color color = null;
        if (value instanceof Patch) {
			Patch p = (Patch) value;
            String text = "";
			if (p.getDbState() == AbstractPatch.DbState.IN_PROGRESS) {
				text = Messages.msg("table.patches.state.inProgress");
			}
			if (p.getDbState() == AbstractPatch.DbState.COMMITTED) {
                text = Messages.msg("table.patches.state.committed");
                color = Color.GREEN;
			}
			if (p.getDbState() == AbstractPatch.DbState.NOT_AVAILABLE) {
				if (p.canApply()) {
                    text = Messages.msg("table.patches.state.missing");
				} else {
					text = Messages.msg("table.patches.state.empty");
				}
			}
            component = super.getTableCellRendererComponent(table, text, isSelected, hasFocus, row, column);
		}
        if (value instanceof RollbackPatch) {
            String text = "";
            RollbackPatch rp = (RollbackPatch) value;
            if (rp.isMissing()) {
                text = Messages.msg("table.patches.state.rollback.missing");
                color = Color.RED;
            }
            component = super.getTableCellRendererComponent(table, text, isSelected, hasFocus, row, column);
        }
        if (value instanceof JButton) {
            component = (JComponent) value;
        }
        if (component == null) {
            component = super.getTableCellRendererComponent(table, "", isSelected, hasFocus, row, column);
        }
        if (color != null) {
            component.setForeground(color);
        }
        return component;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy