/** * ======================== legal notice ====================== * * File: ServerDefinitionTableFormat.java * Created: 13. June 2012, 04:57 * Author: Geronimo * Project: cmpc - a java frontend (client) part of compound media player * uses external players to play the media * * CMP - compound media player * * is a client/server mediaplayer intended to play any media from any workstation * without the need to export or mount shares. cmps is an easy to use backend * with a (ready to use) HTML-interface. Additionally the backend supports * authentication via HTTP-digest authorization. * cmpc is a client with vdr-like osd-menues. * * Copyright (c) 2012 Reinhard Mantey, some rights reserved! * published under Creative Commons by-sa * For details see http://creativecommons.org/licenses/by-sa/3.0/ * * The cmp project's homepage is at http://projects.vdr-developer.org/projects/cmp * * -------------------------------------------------------------- */ package de.schwarzrot.control.table; import ca.odell.glazedlists.gui.WritableTableFormat; import de.schwarzrot.base.util.ApplicationServiceProvider; import de.schwarzrot.base.util.MessageBundle; import de.schwarzrot.media.domain.MediaServer; public class ServerDefinitionTableFormat implements WritableTableFormat { private static MessageBundle bundle; protected static final String KEY_0 = ServerDefinitionTableFormat.class.getSimpleName() + ".col0"; protected static final String KEY_1 = ServerDefinitionTableFormat.class.getSimpleName() + ".col1"; @Override public int getColumnCount() { return 2; } @Override public String getColumnName(int column) { if (bundle == null) bundle = ApplicationServiceProvider.getService(MessageBundle.class); switch (column) { case 0: return bundle.getMessage(KEY_0); case 1: return bundle.getMessage(KEY_1); default: throw new IndexOutOfBoundsException(); } } @Override public Object getColumnValue(MediaServer sd, int column) { switch (column) { case 0: return sd.getHostName(); case 1: return sd.getPort(); default: throw new IndexOutOfBoundsException(); } } public int getColumnWidth(int column) { switch (column) { case 0: return -1; case 1: return 80; default: throw new IndexOutOfBoundsException(); } } @Override public boolean isEditable(MediaServer sd, int column) { switch (column) { case 0: case 1: return true; default: throw new IndexOutOfBoundsException(); } } @Override public MediaServer setColumnValue(MediaServer sd, Object value, int column) { switch (column) { case 0: sd.setHostName(value.toString()); break; case 1: try { sd.setPort(Integer.decode(value.toString())); } catch (Throwable t) { } break; default: throw new IndexOutOfBoundsException(); } return sd; } }