/* * 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. * * Copyright 2013-2015 Redwarp */ package net.redwarp.tool.resizer.table; import net.redwarp.tool.resizer.misc.Localization; import java.awt.*; import javax.swing.*; import javax.swing.table.DefaultTableCellRenderer; public class StatusCellRenderer extends DefaultTableCellRenderer { private static final long serialVersionUID = 518341333665088552L; private ImageIcon iconSuccess = new ImageIcon( StatusCellRenderer.class.getResource("/img/valid.png")); private ImageIcon iconError = new ImageIcon( StatusCellRenderer.class.getResource("/img/error.png")); public StatusCellRenderer() { this.setHorizontalAlignment(LEADING); this.setVerticalAlignment(CENTER); } @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { JLabel label = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); label.setIcon(null); label.setText(null); if (value instanceof Operation) { Operation operation = (Operation) value; OperationStatus status = operation.getStatus(); if (status == OperationStatus.FINISH) { label.setIcon(this.iconSuccess); } else if (status == OperationStatus.ERROR) { label.setIcon(this.iconError); } if (operation.getMessage() != null) { label.setText(operation.getMessage()); } else { if (status == OperationStatus.PENDING) { label.setText(Localization.get("status_pending")); } else if (status == OperationStatus.FINISH) { label.setText(Localization.get("status_finished")); } else if (status == OperationStatus.ERROR) { label.setText(Localization.get("status_error")); } else if (status == OperationStatus.IN_PROGRESS) { label.setText(Localization.get("status_in_progress")); } } } return label; } }