package org.openslx.dozmod.gui.control.table; import org.openslx.bwlp.thrift.iface.NetShare; import org.openslx.bwlp.thrift.iface.NetShareAuth; import org.openslx.dozmod.gui.configurator.NetshareConfigurator; import org.openslx.dozmod.thrift.Sorters; import org.openslx.dozmod.util.FormatHelper; @SuppressWarnings("serial") public class NetshareTable extends CheckListTable { public static final ListTableColumn COL_NAME = new ListTableColumn("Name"); public static final ListTableColumn COL_MOUNT = new ListTableColumn("Ziel"); public static final ListTableColumn COL_PATH = new ListTableColumn("Pfad"); public static final ListTableColumn COL_AUTH = new ListTableColumn("Authentifizierung", Sorters.netShareAuth); public static final ListTableColumn COL_USER = new ListTableColumn("Username"); public static final ListTableColumn COL_PASSWORD = new ListTableColumn("Passwort"); public NetshareTable() { super(COL_NAME, COL_PATH, COL_MOUNT, COL_AUTH, COL_USER, COL_PASSWORD); } @Override protected Object getValueAtInternal2(NetShare item, ListTableColumn columnIndex) { if (columnIndex == COL_NAME) return item.displayname; if (columnIndex == COL_MOUNT) return item.mountpoint; if (columnIndex == COL_PATH) return item.path; if (columnIndex == COL_AUTH) return item.auth; if (columnIndex == COL_USER) return item.username; if (columnIndex == COL_PASSWORD) return item.password; throw new IndexOutOfBoundsException(); } @Override public Object modelValueToDisplayFormat(Object object, ListTableColumn column) { if (column == COL_NAME) return (String) object; if (column == COL_MOUNT) { String input = (String) object; if (input.isEmpty()) return String.valueOf(NetshareConfigurator.EMPTY_MARKER); if (!input.equals(String.valueOf(NetshareConfigurator.EMPTY_MARKER)) && !input.equals(NetshareConfigurator.PRINTER_MARKER)) input += ":"; return input; } if (column == COL_PATH) return (String) object; if (column == COL_AUTH) { return FormatHelper.netShareAuthName((NetShareAuth) object); } if (column == COL_USER) return (String) object; if (column == COL_PASSWORD) { String pass = (String) object; return pass != null ? pass.replaceAll(".", "*") : ""; } throw new IndexOutOfBoundsException(); } @Override protected boolean isItemCheckable(NetShare item) { return item.shareId > 0; } }