Java tutorial
/******************************************************************************* * Copyright (c) 2008, 2009 Internettechnik, FH JOANNEUM * http://www.fh-joanneum.at/itm * * Licenced under the GNU GENERAL PUBLIC LICENSE Version 2; * You may obtain a copy of the License at * http://www.gnu.org/licenses/gpl-2.0.txt * * 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. *******************************************************************************/ package at.rc.tacos.client.providers; import java.text.SimpleDateFormat; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.ITableColorProvider; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Image; import at.rc.tacos.client.util.CustomColors; import at.rc.tacos.common.IKindOfTransport; import at.rc.tacos.factory.ImageFactory; import at.rc.tacos.model.Transport; import at.rc.tacos.util.MyUtils; public class MultiTransportLabelProvider implements ITableLabelProvider, ITableColorProvider, IKindOfTransport { // define the columns public static final int COLUMN_DATE = 0; public static final int COLUMN_RESP_STATION = 1; public static final int COLUMN_ABF = 2; public static final int COLUMN_AT_PATIENT = 3; public static final int COLUMN_TERM = 4; public static final int COLUMN_FROM = 5; public static final int COLUMN_PATIENT = 6; public static final int COLUMN_TO = 7; public static final int COLUMN_T = 8; @Override public Image getColumnImage(Object element, int columnIndex) { Transport transport = (Transport) element; // determine the colum and return a image if needed switch (columnIndex) { case COLUMN_TO: if (transport.isLongDistanceTrip()) return ImageFactory.getInstance().getRegisteredImage("transport.alarming.fernfahrt"); else return null; } return null; } @Override public String getColumnText(Object element, int columnIndex) { Transport transport = (Transport) element; SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); String street; String city; switch (columnIndex) { case COLUMN_DATE: return MyUtils.timestampToString(transport.getDateOfTransport(), MyUtils.dateFormat); case COLUMN_RESP_STATION: if (transport.getPlanedLocation().getLocationName().equalsIgnoreCase("Kapfenberg")) return "KA"; else if (transport.getPlanedLocation().getLocationName().equalsIgnoreCase("Bruck an der Mur")) return "BM"; else if (transport.getPlanedLocation().getLocationName().equalsIgnoreCase("St. Marein")) return "MA"; else if (transport.getPlanedLocation().getLocationName().equalsIgnoreCase("Breitenau")) return "BR"; else if (transport.getPlanedLocation().getLocationName().equalsIgnoreCase("Thrl")) return "TH"; else if (transport.getPlanedLocation().getLocationName().equalsIgnoreCase("Turnau")) return "TU"; else if (transport.getPlanedLocation().getLocationName().equalsIgnoreCase("Bezirk: Bruck - Kapfenberg")) return "BE"; else return null; case COLUMN_ABF: if (transport.getPlannedStartOfTransport() != 0) return sdf.format(transport.getPlannedStartOfTransport()); else return ""; case COLUMN_AT_PATIENT: if (transport.getPlannedTimeAtPatient() != 0) return sdf.format(transport.getPlannedTimeAtPatient()); else return ""; case COLUMN_TERM: if (transport.getAppointmentTimeAtDestination() != 0) return sdf.format(transport.getAppointmentTimeAtDestination()); else return ""; case COLUMN_FROM: return transport.getFromStreet() + "/" + transport.getFromCity(); case COLUMN_PATIENT: if (transport.getPatient() != null) return transport.getPatient().getLastname() + " " + transport.getPatient().getFirstname(); else return ""; case COLUMN_TO: if (transport.getToStreet() == null) street = ""; else street = transport.getToStreet(); if (transport.getToCity() == null) city = ""; else city = transport.getToCity(); return street + "/" + city; case COLUMN_T: if (transport.getKindOfTransport() != null) { if (transport.getKindOfTransport().equalsIgnoreCase(TRANSPORT_KIND_TRAGSESSEL)) return "S"; else if (transport.getKindOfTransport().equalsIgnoreCase(TRANSPORT_KIND_KRANKENTRAGE)) return "L"; else if (transport.getKindOfTransport().equalsIgnoreCase(TRANSPORT_KIND_GEHEND)) return "G"; else if (transport.getKindOfTransport().equalsIgnoreCase(TRANSPORT_KIND_ROLLSTUHL)) return "R"; else return ""; } default: return null; } } @Override public void addListener(ILabelProviderListener arg0) { } @Override public void dispose() { } @Override public boolean isLabelProperty(Object arg0, String arg1) { return false; } @Override public void removeListener(ILabelProviderListener arg0) { } @Override public Color getBackground(Object element, int columnIndex) { Transport transport = (Transport) element; // determine the colum and return a image if needed if (transport.getTransportPriority().equalsIgnoreCase("A")) return CustomColors.BACKGROUND_RED; else if (transport.getTransportPriority().equalsIgnoreCase("B")) return CustomColors.BACKGROUND_BLUE; // default color, nothing return null; } @Override public Color getForeground(Object element, int columnIndex) { return null; } }