001: /*
002: * Copyright 2006-2007 Pentaho Corporation. All rights reserved.
003: * This software was developed by Pentaho Corporation and is provided under the terms
004: * of the Mozilla Public License, Version 1.1, or any later version. You may not use
005: * this file except in compliance with the license. If you need a copy of the license,
006: * please go to http://www.mozilla.org/MPL/MPL-1.1.txt.
007: *
008: * Software distributed under the Mozilla Public License is distributed on an "AS IS"
009: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. Please refer to
010: * the license for the specific language governing your rights and limitations.
011: *
012: * Additional Contributor(s): Martin Schmid gridvision engineering GmbH
013: */
014: package org.pentaho.reportdesigner.crm.report.properties.renderers;
015:
016: import org.jetbrains.annotations.NotNull;
017: import org.jetbrains.annotations.Nullable;
018: import org.pentaho.reportdesigner.crm.report.model.SubReportParameter;
019: import org.pentaho.reportdesigner.crm.report.model.SubReportParameters;
020: import org.pentaho.reportdesigner.lib.client.i18n.TranslationManager;
021: import org.pentaho.reportdesigner.lib.client.util.UncaughtExcpetionsModel;
022:
023: import javax.swing.*;
024: import javax.swing.table.DefaultTableCellRenderer;
025: import java.awt.*;
026: import java.util.Collection;
027: import java.util.HashSet;
028:
029: /**
030: * User: Martin
031: * Date: 21.10.2005
032: * Time: 09:15:46
033: */
034: public class SubReportParametersTableCellRenderer extends
035: DefaultTableCellRenderer {
036:
037: @NotNull
038: public Component getTableCellRendererComponent(@NotNull
039: JTable table, @Nullable
040: Object value, boolean isSelected, boolean hasFocus, int row,
041: int column) {
042: JLabel label = (JLabel) super .getTableCellRendererComponent(
043: table, value, isSelected, hasFocus, row, column);
044: label.setEnabled(table.isEnabled());
045: try {
046: if (value instanceof HashSet) {
047: HashSet<?> hashSet = (HashSet<?>) value;
048: if (hashSet.size() == 1) {
049: SubReportParameters subReportParameters = (SubReportParameters) hashSet
050: .iterator().next();
051: if (subReportParameters != null) {
052: String text = createText(subReportParameters);
053: label.setText(text);
054: } else {
055: label.setText(TranslationManager.getInstance()
056: .getTranslation("R", "Property.None"));
057: label.setEnabled(false);
058: }
059: } else if (hashSet.size() > 1) {
060: label.setText(TranslationManager.getInstance()
061: .getTranslation("R",
062: "Property.MultipleValues"));
063: }
064: }
065: } catch (Throwable e) {
066: UncaughtExcpetionsModel.getInstance().addException(e);
067: }
068: return label;
069: }
070:
071: @NotNull
072: public static String createText(@Nullable
073: SubReportParameters subReportParameters) {
074: if (subReportParameters == null) {
075: return "";
076: }
077:
078: StringBuilder text = new StringBuilder(20);
079: text.append(TranslationManager.getInstance().getTranslation(
080: "R", "SubReportParameters.ImportPrefix"));
081: if (subReportParameters.isGlobalImport()) {
082: text.append("* ");
083: } else {
084: Collection<SubReportParameter> parameters = subReportParameters
085: .getImportParameters().values();
086: for (SubReportParameter parameter : parameters) {
087: text.append(parameter.getKey()).append("->").append(
088: parameter.getValue()).append(" ");
089: }
090: }
091:
092: text.append(", ");
093:
094: text.append(TranslationManager.getInstance().getTranslation(
095: "R", "SubReportParameters.ExportPrefix"));
096: if (subReportParameters.isGlobalExport()) {
097: text.append("* ");
098: } else {
099: Collection<SubReportParameter> parameters = subReportParameters
100: .getExportParameters().values();
101: for (SubReportParameter parameter : parameters) {
102: text.append(parameter.getKey()).append("->").append(
103: parameter.getValue()).append(" ");
104: }
105: }
106: return text.toString();
107: }
108: }
|