@Override public void bind(final Token token) { // ICON getTokenIconPanel().setImageId(token.getImageAssetId()); // PROPERTIES updatePropertyTypeCombo(); updatePropertiesTable(token.getPropertyType()); // SIGHT updateSightTypeCombo(); // STATES Component barPanel = null; updateStatesPanel(); Component[] statePanels = getStatesPanel().getComponents(); for (int j = 0; j < statePanels.length; j++) { if ("bar".equals(statePanels[j].getName())) { barPanel = statePanels[j]; continue; } Component[] states = ((Container) statePanels[j]).getComponents(); for (int i = 0; i < states.length; i++) { JCheckBox state = (JCheckBox) states[i]; state.setSelected(token.hasState(state.getText())); } } // BARS if (barPanel != null) { Component[] bars = ((Container) barPanel).getComponents(); for (int i = 0; i < bars.length; i += 2) { JCheckBox cb = (JCheckBox) ((Container) bars[i]).getComponent(1); JSlider bar = (JSlider) bars[i + 1]; if (token.getBar(bar.getName()) == null) { cb.setSelected(true); bar.setEnabled(false); bar.setValue(100); } else { cb.setSelected(false); bar.setEnabled(true); bar.setValue((int) (token.getBar(bar.getName()) * 100)); } } } // OWNER LIST EventQueue.invokeLater( new Runnable() { @Override public void run() { getOwnerList().setModel(new OwnerListModel()); } }); // SPEECH TABLE EventQueue.invokeLater( new Runnable() { @Override public void run() { getSpeechTable().setModel(new SpeechTableModel(token)); } }); // Player player = TabletopTool.getPlayer(); // boolean editable = player.isGM() || // !TabletopTool.getServerPolicy().useStrictTokenManagement() || // token.isOwner(player.getName()); // getAllPlayersCheckBox().setSelected(token.isOwnedByAll()); // OTHER getShapeCombo().setSelectedItem(token.getShape()); setSizeCombo(token); getPropertyTypeCombo().setSelectedItem(token.getPropertyType()); getSightTypeCombo() .setSelectedItem( token.getSightType() != null ? token.getSightType() : TabletopTool.getCampaign().getCampaignProperties().getDefaultSightType()); getCharSheetPanel().setImageId(token.getCharsheetImage()); getPortraitPanel().setImageId(token.getPortraitImage()); getTokenLayoutPanel().setToken(token); // we will disable the Owner only visible check box if the token is not // visible to players to signify the relationship ActionListener tokenVisibleActionListener = new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { AbstractButton abstractButton = (AbstractButton) actionEvent.getSource(); boolean selected = abstractButton.getModel().isSelected(); getVisibleOnlyToOwnerCheckBox().setEnabled(selected); getVisibleOnlyToOwnerLabel().setEnabled(selected); } }; getVisibleCheckBox().addActionListener(tokenVisibleActionListener); // Character Sheets // controller = null; // String form = TabletopTool.getCampaign().getCharacterSheets().get(token.getPropertyType()); // if (form == null) // return; // URL formUrl = getClass().getClassLoader().getResource(form); // if (formUrl == null) // return; // controller = new CharSheetController(formUrl, null); // HashMap<String, Object> properties = new HashMap<String, Object>(); // for (String prop : token.getPropertyNames()) // properties.put(prop, token.getProperty(prop)); // controller.setData(properties); // controller.getPanel().setName("characterSheet"); // replaceComponent("sheetPanel", "characterSheet", controller.getPanel()); super.bind(token); }