01: /*
02: * Copyright 2006-2007 Pentaho Corporation. All rights reserved.
03: * This software was developed by Pentaho Corporation and is provided under the terms
04: * of the Mozilla Public License, Version 1.1, or any later version. You may not use
05: * this file except in compliance with the license. If you need a copy of the license,
06: * please go to http://www.mozilla.org/MPL/MPL-1.1.txt.
07: *
08: * Software distributed under the Mozilla Public License is distributed on an "AS IS"
09: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. Please refer to
10: * the license for the specific language governing your rights and limitations.
11: *
12: * Additional Contributor(s): Martin Schmid gridvision engineering GmbH
13: */
14: package org.pentaho.reportdesigner.crm.report.properties.renderers;
15:
16: import org.jetbrains.annotations.NotNull;
17: import org.jetbrains.annotations.Nullable;
18: import org.pentaho.reportdesigner.lib.client.i18n.TranslationManager;
19: import org.pentaho.reportdesigner.lib.client.util.UncaughtExcpetionsModel;
20:
21: import javax.swing.*;
22: import javax.swing.table.DefaultTableCellRenderer;
23: import java.awt.*;
24: import java.text.DateFormat;
25: import java.util.Date;
26: import java.util.HashSet;
27:
28: /**
29: * User: Martin
30: * Date: 21.10.2005
31: * Time: 09:15:46
32: */
33: public class DateTableCellRenderer extends DefaultTableCellRenderer {
34: @NotNull
35: private static final DateFormat dateFormat = DateFormat
36: .getDateInstance(DateFormat.SHORT);
37:
38: @NotNull
39: public Component getTableCellRendererComponent(@NotNull
40: JTable table, @Nullable
41: Object value, boolean isSelected, boolean hasFocus, int row,
42: int column) {
43: JLabel label = (JLabel) super .getTableCellRendererComponent(
44: table, value, isSelected, hasFocus, row, column);
45: label.setEnabled(table.isEnabled());
46: try {
47: if (value instanceof HashSet) {
48: HashSet<?> hashSet = (HashSet<?>) value;
49: if (hashSet.size() == 1) {
50: Date date = (Date) hashSet.iterator().next();
51: if (date != null) {
52: //noinspection AccessToNonThreadSafeStaticFieldFromInstance
53: label.setText(dateFormat.format(date));//should always be accessed in EDT
54: } else {
55: label.setText(TranslationManager.getInstance()
56: .getTranslation("R", "Property.None"));
57: label.setEnabled(false);
58: }
59: } else if (hashSet.size() > 1) {
60: label.setText(TranslationManager.getInstance()
61: .getTranslation("R",
62: "Property.MultipleValues"));
63: }
64: }
65: } catch (Throwable e) {
66: UncaughtExcpetionsModel.getInstance().addException(e);
67: }
68: return label;
69: }
70: }
|