/**
* Copyright (c) 2009 Juwi MacMillan Group GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* Created on 20.08.2004
*/
package de.juwimm.cms.gui.admin;
import static de.juwimm.cms.client.beans.Application.getBean;
import static de.juwimm.cms.common.Constants.rb;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.Collator;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Iterator;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.SwingUtilities;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import org.apache.log4j.Logger;
import de.juwimm.cms.client.beans.Beans;
import de.juwimm.cms.gui.controls.ReloadablePanel;
import de.juwimm.cms.gui.table.SiteTableModel;
import de.juwimm.cms.gui.table.TableSorter;
import de.juwimm.cms.util.Communication;
import de.juwimm.cms.util.UIConstants;
import de.juwimm.cms.vo.HostValue;
import de.juwimm.cms.vo.ShortLinkValue;
import de.juwimm.cms.vo.SiteValue;
import de.juwimm.cms.vo.UnitValue;
import de.juwimm.cms.vo.ViewDocumentValue;
import de.juwimm.swing.DropDownHolder;
import de.juwimm.swing.NoResizeScrollPane;
import de.juwimm.swing.PickListData;
import de.juwimm.swing.PickListPanel;
import de.juwimm.swing.SortingListModel;
/**
* Panel for managing hosts
*
* @author <a href="mailto:carsten.schalm@juwimm.com">Carsten Schalm</a>
* @company Juwi|MacMillan Group Gmbh, Walsrode, Germany
* @version $Id$
*/
public class PanHost extends JPanel implements ReloadablePanel {
private static Logger log = Logger.getLogger(PanHost.class);
private JButton btnAddHost = null;
private JButton btnDeleteHost = null;
private final SortingListModel hostListModel = new SortingListModel();
private JPanel self = null;
private JTable tblSite = null;
private JScrollPane jScrollPane = null;
private JList lstHosts = null;
private JScrollPane lstHostsScrollPane = null;
private JPanel panManageHosts = null;
private JPanel panAssignHosts = null;
private final PickListData pickListData = new PickListData();
private PickListPanel pickListPanel = null;
private JButton btnSaveHosts = null;
private SiteTableModel tblSiteModel = new SiteTableModel();
private TableSorter tblSiteSorter = null;
private JButton btnEditHost = null;
private final Communication communication = ((Communication) getBean(Beans.COMMUNICATION));
private boolean isMasterRoot = false;
private JPanel panManageShortLinks = null;
private JScrollPane spSites = null;
private JTable tblSitesShortLinks = null;
private SiteTableModel tblSitesShortLinksModel = new SiteTableModel();
private TableSorter tblSitesShortLinksSorter = null;
private JList lstHostsShortLinks = null;
private JScrollPane spHostsShortLinks = null;
private final SortingListModel hostsShortLinksListModel = new SortingListModel();
private JList lstShortLinks = null;
private JScrollPane spShortLinks = null;
private final SortingListModel shortLinksListModel = new SortingListModel();
private JPanel panHostUnit = null;
private JPanel panShortLink = null;
private JComboBox cbxUnits = null;
private JButton btnSaveHostUnit = null;
private JButton btnSaveShortLink = null;
private JButton btnNewShortLink = null;
private JButton btnDeleteShortLink = null;
private JComboBox cbxViewDocuments = null;
private JTextField txtShortLink = null;
private JTextField txtRedirectUrl = null;
private JButton btnHelp = null;
/**
* This is the default constructor
*/
public PanHost() {
super();
initialize();
this.self = this;
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setLayout(new GridBagLayout());
this.setSize(636, 271);
GridBagConstraints gridBagConstraints2 = new GridBagConstraints();
gridBagConstraints2.gridx = 0;
gridBagConstraints2.gridy = 1;
gridBagConstraints2.gridheight = 1;
gridBagConstraints2.insets = new java.awt.Insets(10, 10, 0, 10);
gridBagConstraints2.weighty = 1.0D;
gridBagConstraints2.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints2.weightx = 1.0D;
gridBagConstraints2.gridwidth = 2;
gridBagConstraints2.fill = java.awt.GridBagConstraints.BOTH;
this.setPreferredSize(new java.awt.Dimension(636, 271));
this.setMinimumSize(new java.awt.Dimension(636, 271));
if (communication.getUser().isMasterRoot()) {
JTabbedPane panTab = new JTabbedPane();
this.pickListData.setLeftLabel(rb.getString("panel.admin.host.assignedhosts"));
this.pickListData.setRightLabel(rb.getString("panel.admin.host.availablehosts"));
this.pickListPanel = new PickListPanel(this.pickListData);
this.isMasterRoot = true;
this.getTblSite().getSelectionModel().addListSelectionListener(new SiteListSelectionListener());
this.getTblSite().getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
this.getTblSitesShortLinks().getSelectionModel().addListSelectionListener(new SitesShortLinksListSelectionListener());
this.getTblSitesShortLinks().getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
panTab.add(getPanManageHosts(), rb.getString("panel.admin.host.managehosts"));
panTab.add(getPanAssignHosts(), rb.getString("panel.admin.host.assignhosts"));
panTab.add(getPanManageShortLinks(), rb.getString("panel.admin.host.manageShortLinks"));
this.add(panTab, gridBagConstraints2);
} else {
this.add(getPanManageHosts(), gridBagConstraints2);
}
}
/**
* This method initializes btnAddHost
*
* @return javax.swing.JButton
*/
private JButton getBtnAddHost() {
if (btnAddHost == null) {
btnAddHost = new JButton();
btnAddHost.setText(rb.getString("dialog.add"));
btnAddHost.setPreferredSize(new java.awt.Dimension(103, 26));
btnAddHost.setMaximumSize(new java.awt.Dimension(103, 26));
btnAddHost.setMinimumSize(new java.awt.Dimension(103, 26));
}
btnAddHost.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CreateNewHostDialog hd = new CreateNewHostDialog(self, null, (!isMasterRoot));
hd.setLocationRelativeTo(UIConstants.getMainFrame());
hd.setVisible(true);
}
});
return btnAddHost;
}
/**
* This method initializes btnDeleteHost
*
* @return javax.swing.JButton
*/
private JButton getBtnDeleteHost() {
if (btnDeleteHost == null) {
btnDeleteHost = new JButton();
btnDeleteHost.setText(rb.getString("dialog.delete"));
btnDeleteHost.setEnabled(false);
btnDeleteHost.setMaximumSize(new java.awt.Dimension(103, 26));
btnDeleteHost.setMinimumSize(new java.awt.Dimension(103, 26));
btnDeleteHost.setPreferredSize(new java.awt.Dimension(103, 26));
btnDeleteHost.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int[] count = lstHosts.getSelectedIndices();
for (int i = count.length - 1; i > -1; i--) {
HostValue currentHost = (HostValue) ((DropDownHolder) hostListModel.getElementAt(count[i])).getObject();
hostListModel.removeElementAt(count[i]);
communication.removeHost(currentHost.getHostName());
if (getTblSite().getSelectedRow() != -1) {
SiteValue vo = (SiteValue) tblSiteSorter.getValueAt(getTblSite().getSelectedRow(), 2);
updateValues(vo);
} else {
updateValues(null);
}
}
}
});
}
return btnDeleteHost;
}
/**
* This method initializes lstHosts
*
* @return javax.swing.JList
*/
private JList getLstHosts() {
if (lstHosts == null) {
lstHosts = new JList(this.hostListModel);
lstHosts.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
lstHosts.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if (lstHosts.isSelectionEmpty()) {
btnDeleteHost.setEnabled(false);
btnEditHost.setEnabled(false);
} else {
btnDeleteHost.setEnabled(true);
btnEditHost.setEnabled(true);
}
}
});
}
return lstHosts;
}
/**
* @return Returns the hostListModel.
*/
public SortingListModel getHostListModel() {
return (this.hostListModel);
}
/**
* This method initializes panManageHosts
*
* @return javax.swing.JPanel
*/
private JPanel getPanManageHosts() {
if (panManageHosts == null) {
GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
GridBagConstraints gridBagConstraints6 = new GridBagConstraints();
GridBagConstraints gridBagConstraints5 = new GridBagConstraints();
GridBagConstraints gridBagConstraints4 = new GridBagConstraints();
GridBagConstraints gridBagConstraints3 = new GridBagConstraints();
panManageHosts = new JPanel();
panManageHosts.setLayout(new GridBagLayout());
gridBagConstraints3.gridx = 3;
gridBagConstraints3.gridy = 0;
gridBagConstraints3.gridheight = 1;
gridBagConstraints3.insets = new java.awt.Insets(5, 5, 0, 5);
gridBagConstraints3.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints3.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints3.weightx = 0.0D;
gridBagConstraints4.gridx = 3;
gridBagConstraints4.gridy = 1;
gridBagConstraints4.gridheight = 1;
gridBagConstraints4.insets = new java.awt.Insets(5, 5, 0, 5);
gridBagConstraints4.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints4.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints4.weightx = 0.0D;
gridBagConstraints5.gridx = 0;
gridBagConstraints5.gridy = 3;
gridBagConstraints5.gridheight = 1;
gridBagConstraints5.insets = new java.awt.Insets(5, 5, 0, 0);
gridBagConstraints5.weighty = 0.0D;
gridBagConstraints5.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints5.weightx = 0.0D;
gridBagConstraints5.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints6.gridx = 0;
gridBagConstraints6.gridy = 0;
gridBagConstraints6.gridheight = 3;
gridBagConstraints6.weightx = 2.0D;
gridBagConstraints6.weighty = 2.0D;
gridBagConstraints6.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints6.insets = new java.awt.Insets(5, 5, 5, 0);
gridBagConstraints6.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints6.gridwidth = 3;
gridBagConstraints1.gridx = 3;
gridBagConstraints1.gridy = 2;
gridBagConstraints1.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints1.insets = new java.awt.Insets(5, 5, 5, 5);
panManageHosts.setBorder(javax.swing.BorderFactory.createTitledBorder(rb.getString("panel.admin.host.managehosts")));
panManageHosts.setPreferredSize(new java.awt.Dimension(400, 150));
panManageHosts.setMaximumSize(new java.awt.Dimension(400, 150));
panManageHosts.setMinimumSize(new java.awt.Dimension(400, 150));
panManageHosts.add(getBtnAddHost(), gridBagConstraints3);
panManageHosts.add(getBtnDeleteHost(), gridBagConstraints4);
panManageHosts.add(getBtnEditHost(), gridBagConstraints1);
panManageHosts.add(getLstHostsScrollPane(), gridBagConstraints6);
//refreshHostList();
}
return panManageHosts;
}
/**
* This method initializes panAssignHosts
*
* @return javax.swing.JPanel
*/
private JPanel getPanAssignHosts() {
if (panAssignHosts == null) {
GridBagConstraints gridBagConstraints13 = new GridBagConstraints();
GridBagConstraints gridBagConstraints11 = new GridBagConstraints();
GridBagConstraints gridBagConstraints9 = new GridBagConstraints();
panAssignHosts = new JPanel();
panAssignHosts.setLayout(new GridBagLayout());
gridBagConstraints9.gridx = 0;
gridBagConstraints9.gridy = 0;
gridBagConstraints9.weightx = 1.0;
gridBagConstraints9.weighty = 1.0;
gridBagConstraints9.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints9.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints9.insets = new java.awt.Insets(5, 5, 5, 0);
gridBagConstraints11.gridx = 1;
gridBagConstraints11.gridy = 0;
gridBagConstraints11.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints11.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints11.insets = new java.awt.Insets(5, 5, 0, 5);
gridBagConstraints11.weightx = 6.0D;
gridBagConstraints13.gridx = 0;
gridBagConstraints13.gridy = 1;
gridBagConstraints13.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints13.insets = new java.awt.Insets(5, 5, 5, 0);
panAssignHosts.setBorder(javax.swing.BorderFactory.createTitledBorder(rb.getString("panel.admin.host.assignhosts")));
panAssignHosts.add(getJScrollPane(), gridBagConstraints9);
panAssignHosts.add(this.pickListPanel, gridBagConstraints11);
panAssignHosts.add(getBtnSaveHosts(), gridBagConstraints13);
this.pickListPanel.setEnabled(true);
}
return panAssignHosts;
}
public void reload() {
if (log.isDebugEnabled()) log.debug("reload ...");
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
setCursor(new Cursor(Cursor.WAIT_CURSOR));
if (communication.getUser().isMasterRoot()) {
reloadSites();
}
refreshHostList();
} catch (Exception exe) {
log.error("Reloading Error", exe);
}
setCursor(Cursor.getDefaultCursor());
}
});
}
private void reloadSites() {
updateValues(null);
tblSiteModel = new SiteTableModel();
tblSiteSorter = new TableSorter(tblSiteModel, this.getTblSite().getTableHeader());
SiteValue[] sites = communication.getAllSites();
tblSiteModel.addRows(sites);
this.getTblSite().getSelectionModel().clearSelection();
this.getTblSite().setModel(tblSiteSorter);
tblSitesShortLinksModel = new SiteTableModel();
tblSitesShortLinksSorter = new TableSorter(tblSitesShortLinksModel, this.getTblSitesShortLinks().getTableHeader());
tblSitesShortLinksModel.addRows(sites);
this.getTblSitesShortLinks().getSelectionModel().clearSelection();
this.getTblSitesShortLinks().setModel(tblSitesShortLinksSorter);
siteSelected(false);
}
private void updateValues(SiteValue vo) {
this.pickListData.getLstLeftModel().removeAllElements();
this.pickListData.getLstRightModel().removeAllElements();
if (vo != null) {
HostValue[] assignedHosts = null;
assignedHosts = this.communication.getHostsForSite(vo.getSiteId());
if (assignedHosts != null) {
for (int i = (assignedHosts.length - 1); i >= 0; i--) {
this.pickListData.getLstLeftModel().addElement(new DropDownHolder(assignedHosts[i], assignedHosts[i].getHostName()));
}
}
}
HostValue[] allUnassignedHosts = null;
allUnassignedHosts = this.communication.getAllUnassignedHosts();
if (allUnassignedHosts != null) {
for (int i = (allUnassignedHosts.length - 1); i >= 0; i--) {
this.pickListData.getLstRightModel().addElement(new DropDownHolder(allUnassignedHosts[i], allUnassignedHosts[i].getHostName()));
}
}
}
private void siteSelected(boolean val) {
this.pickListPanel.setEnabled(val);
}
/**
* @author <a href="mailto:carsten.schalm@juwimm.com">Carsten Schalm</a>
* company Juwi|MacMillan Group Gmbh, Walsrode, Germany
* @version $Id$
*/
private class SiteListSelectionListener implements ListSelectionListener {
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
return;
}
if (getTblSite().getSelectedRow() >= 0) {
if (pickListData.isModified()) {
int i = JOptionPane.showConfirmDialog(self, rb.getString("dialog.wantToSave"), rb.getString("dialog.title"), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (i == JOptionPane.YES_OPTION) {
setCursor(new Cursor(Cursor.WAIT_CURSOR));
save(e.getLastIndex());
}
}
siteSelected(false);
setCursor(new Cursor(Cursor.WAIT_CURSOR));
SiteValue siteValue = (SiteValue) tblSiteSorter.getValueAt(getTblSite().getSelectedRow(), 2);
updateValues(siteValue);
siteSelected(true);
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
} else {
siteSelected(false);
}
pickListData.setModified(false);
}
}
/**
* This method initializes btnSaveHosts, the button on the page for associate hosts to a site
*
* @return javax.swing.JButton
*/
private JButton getBtnSaveHosts() {
if (btnSaveHosts == null) {
btnSaveHosts = new JButton();
btnSaveHosts.setText(rb.getString("dialog.save"));
btnSaveHosts.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
save();
}
});
}
return btnSaveHosts;
}
private void refreshHostList() {
HostValue[] hv = null;
try {
if (communication.getUser().isMasterRoot()) {
if (log.isDebugEnabled()) log.debug("MasterRoot: getAllHosts()");
hv = this.communication.getAllHosts();
} else {
if (log.isDebugEnabled()) log.debug("SiteRoot: getHosts()");
hv = this.communication.getHosts();
}
} catch (Exception e) {
log.error("Error on getting hostlist: " + e.getMessage());
}
this.hostListModel.removeAllElements();
if (hv != null) {
for (int i = (hv.length - 1); i >= 0; i--) {
this.hostListModel.addElement(new DropDownHolder(hv[i], hv[i].getHostName()));
}
}
}
/**
* @return Returns the lstHostsScrollPane.
*/
public JScrollPane getLstHostsScrollPane() {
if (lstHostsScrollPane == null) {
lstHostsScrollPane = new NoResizeScrollPane(getLstHosts());
}
return this.lstHostsScrollPane;
}
/**
* This method initializes btnEditHost
*
* @return javax.swing.JButton
*/
private JButton getBtnEditHost() {
if (btnEditHost == null) {
btnEditHost = new JButton();
btnEditHost.setText(rb.getString("dialog.change"));
btnEditHost.setEnabled(false);
btnEditHost.setPreferredSize(new java.awt.Dimension(103, 26));
btnEditHost.setMaximumSize(new java.awt.Dimension(103, 26));
btnEditHost.setMinimumSize(new java.awt.Dimension(103, 26));
}
btnEditHost.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (!(lstHosts.isSelectionEmpty())) {
HostValue currentHost = ((HostValue) ((DropDownHolder) lstHosts.getSelectedValue()).getObject());
CreateNewHostDialog hd = new CreateNewHostDialog(self, currentHost, (!isMasterRoot));
hd.setLocationRelativeTo(UIConstants.getMainFrame());
hd.setVisible(true);
}
}
});
return btnEditHost;
}
/* (non-Javadoc)
* @see de.juwimm.cms.gui.controls.ReloadablePanel#save()
*/
public void save() {
SwingUtilities.invokeLater(new SaveRunner(-1));
}
public void save(int row) {
SwingUtilities.invokeLater(new SaveRunner(row));
}
/* (non-Javadoc)
* @see de.juwimm.cms.gui.controls.UnloadablePanel#unload()
*/
public void unload() {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
setCursor(new Cursor(Cursor.WAIT_CURSOR));
} catch (Exception exe) {
log.error("Reloading Error", exe);
}
setCursor(Cursor.getDefaultCursor());
}
});
}
/**
* This method initializes tblSite
*
* @return javax.swing.JTable
*/
private JTable getTblSite() {
if (tblSite == null) {
tblSite = new JTable();
}
return tblSite;
}
/**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setViewportView(getTblSite());
jScrollPane.setPreferredSize(new java.awt.Dimension(200, 419));
jScrollPane.setMinimumSize(new java.awt.Dimension(200, 419));
}
return jScrollPane;
}
public PickListData getPickListData() {
return this.pickListData;
}
/**
*
* @author <a href="mailto:carsten.schalm@juwimm.com">Carsten Schalm</a>
* company Juwi|MacMillan Group Gmbh, Walsrode, Germany
* @version $Id$
*/
private class SaveRunner implements Runnable {
private int rowToSave = -1;
public SaveRunner(int row) {
this.rowToSave = row;
}
public void run() {
setCursor(new Cursor(Cursor.WAIT_CURSOR));
if (pickListData.isModified()) {
if (this.rowToSave == -1) {
this.rowToSave = getTblSite().getSelectedRow();
}
SiteValue selSite = (SiteValue) tblSiteSorter.getValueAt(this.rowToSave, 2);
Iterator it = pickListData.getLstLeftModel().iterator();
while (it.hasNext()) {
HostValue currHost = ((HostValue) ((DropDownHolder) it.next()).getObject());
communication.setSite(currHost.getHostName(), selSite.getSiteId());
}
it = pickListData.getLstRightModel().iterator();
while (it.hasNext()) {
HostValue currHost = ((HostValue) ((DropDownHolder) it.next()).getObject());
communication.removeSiteFromHost(currHost.getHostName());
}
}
pickListData.setModified(false);
setCursor(Cursor.getDefaultCursor());
}
}
/**
* This method initializes panManageShortLinks
*
* @return javax.swing.JPanel
*/
private JPanel getPanManageShortLinks() {
if (panManageShortLinks == null) {
GridBagConstraints sitesTableConstraint = new GridBagConstraints();
sitesTableConstraint.gridx = 0;
sitesTableConstraint.gridy = 0;
sitesTableConstraint.gridheight = 2;
sitesTableConstraint.weightx = 1.0;
sitesTableConstraint.weighty = 1.0;
sitesTableConstraint.fill = java.awt.GridBagConstraints.BOTH;
sitesTableConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
sitesTableConstraint.insets = new java.awt.Insets(5, 5, 5, 0);
GridBagConstraints unitConstraint = new GridBagConstraints();
unitConstraint.gridx = 1;
unitConstraint.gridy = 0;
unitConstraint.weightx = 2.0;
unitConstraint.weighty = 1.0;
unitConstraint.fill = java.awt.GridBagConstraints.BOTH;
unitConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
unitConstraint.insets = new java.awt.Insets(5, 5, 0, 5);
GridBagConstraints shortLinkConstraint = new GridBagConstraints();
shortLinkConstraint.gridx = 1;
shortLinkConstraint.gridy = 1;
shortLinkConstraint.weightx = 2.0;
shortLinkConstraint.weighty = 1.0;
shortLinkConstraint.fill = java.awt.GridBagConstraints.BOTH;
shortLinkConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
shortLinkConstraint.insets = new java.awt.Insets(5, 5, 5, 5);
panManageShortLinks = new JPanel();
panManageShortLinks.setLayout(new GridBagLayout());
panManageShortLinks.setBorder(javax.swing.BorderFactory.createTitledBorder(rb.getString("panel.admin.host.manageShortLinks")));
panManageShortLinks.add(getSpSites(), sitesTableConstraint);
panManageShortLinks.add(getPanHostUnit(), unitConstraint);
panManageShortLinks.add(getPanShortLink(), shortLinkConstraint);
}
return panManageShortLinks;
}
/**
* This method initializes spSites
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getSpSites() {
if (spSites == null) {
spSites = new JScrollPane();
spSites.setViewportView(getTblSitesShortLinks());
spSites.setPreferredSize(new java.awt.Dimension(200, 419));
spSites.setMinimumSize(new java.awt.Dimension(200, 419));
}
return spSites;
}
/**
* This method initializes tblSitesShortLinks
*
* @return javax.swing.JTable
*/
private JTable getTblSitesShortLinks() {
if (tblSitesShortLinks == null) {
tblSitesShortLinks = new JTable();
}
return tblSitesShortLinks;
}
/**
* @author <a href="mailto:carsten.schalm@juwimm.com">Carsten Schalm</a>
* company Juwi|MacMillan Group Gmbh, Walsrode, Germany
* @version $Id$
*/
private class SitesShortLinksListSelectionListener implements ListSelectionListener {
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
return;
}
if (getTblSitesShortLinks().getSelectedRow() >= 0) {
siteShortLinksSelected(false);
setCursor(new Cursor(Cursor.WAIT_CURSOR));
SiteValue siteValue = (SiteValue) tblSitesShortLinksSorter.getValueAt(getTblSitesShortLinks().getSelectedRow(), 2);
updateShortLinkValues(siteValue);
siteShortLinksSelected(true);
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
} else {
siteShortLinksSelected(false);
getBtnNewShortLink().setEnabled(false);
}
}
}
/**
* This method initializes lstHostsShortLinks
*
* @return javax.swing.JList
*/
private JList getLstHostsShortLinks() {
if (this.lstHostsShortLinks == null) {
this.lstHostsShortLinks = new JList(this.hostsShortLinksListModel);
this.lstHostsShortLinks.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
this.lstHostsShortLinks.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if (lstHostsShortLinks.isSelectionEmpty()) {
getCbUnits().setSelectedIndex(0);
} else {
HostValue selectedHost = (HostValue) ((DropDownHolder) lstHostsShortLinks.getSelectedValue()).getObject();
if (selectedHost.getUnitId() != null) {
// search for unit in combobox and select it
DefaultComboBoxModel model = (DefaultComboBoxModel) getCbUnits().getModel();
for (int i = (model.getSize() - 1); i >= 0; i--) {
UnitValue unit = (UnitValue) ((DropDownHolder) model.getElementAt(i)).getObject();
if (unit != null && unit.getUnitId() == selectedHost.getUnitId().intValue()) {
model.setSelectedItem(model.getElementAt(i));
break;
}
}
} else {
getCbUnits().setSelectedIndex(0);
}
}
getCbUnits().setEnabled(!lstHostsShortLinks.isSelectionEmpty());
getBtnSaveHostUnit().setEnabled(!lstHostsShortLinks.isSelectionEmpty());
}
});
this.lstHostsShortLinks.setEnabled(false);
}
return this.lstHostsShortLinks;
}
/**
* This method initializes lstShortLinks
*
* @return javax.swing.JList
*/
private JList getLstShortLinks() {
if (this.lstShortLinks == null) {
this.lstShortLinks = new JList(this.shortLinksListModel);
this.lstShortLinks.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
this.lstShortLinks.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if (lstShortLinks.isSelectionEmpty()) {
getCbViewDocuments().setSelectedIndex(0);
getTxtShortLink().setText("");
getTxtRedirectUrl().setText("");
} else {
ShortLinkValue selectedShortLink = (ShortLinkValue) ((DropDownHolder) lstShortLinks.getSelectedValue()).getObject();
if (selectedShortLink.getViewDocumentId() != null) {
// search for viewDocument in combobox and select it
DefaultComboBoxModel model = (DefaultComboBoxModel) getCbViewDocuments().getModel();
for (int i = (model.getSize() - 1); i >= 0; i--) {
ViewDocumentValue viewDocument = (ViewDocumentValue) ((DropDownHolder) model.getElementAt(i)).getObject();
if (viewDocument != null && viewDocument.getViewDocumentId() == selectedShortLink.getViewDocumentId()) {
model.setSelectedItem(model.getElementAt(i));
break;
}
}
} else {
getCbViewDocuments().setSelectedIndex(0);
}
getTxtShortLink().setText(selectedShortLink.getShortLink());
getTxtRedirectUrl().setText(selectedShortLink.getRedirectUrl());
}
getCbViewDocuments().setEnabled(!lstShortLinks.isSelectionEmpty());
getTxtShortLink().setEnabled(!lstShortLinks.isSelectionEmpty());
getTxtRedirectUrl().setEnabled(!lstShortLinks.isSelectionEmpty());
getBtnSaveShortLink().setEnabled(!lstShortLinks.isSelectionEmpty());
getBtnDeleteShortLink().setEnabled(!lstShortLinks.isSelectionEmpty());
}
});
this.lstShortLinks.setEnabled(false);
}
return this.lstShortLinks;
}
/**
* @return Returns the spHostsShortLinks.
*/
public JScrollPane getSpHostsShortLinks() {
if (spHostsShortLinks == null) {
spHostsShortLinks = new NoResizeScrollPane(getLstHostsShortLinks());
}
return this.spHostsShortLinks;
}
/**
* @return Returns the spShortLinks.
*/
public JScrollPane getSpShortLinks() {
if (spShortLinks == null) {
spShortLinks = new NoResizeScrollPane(getLstShortLinks());
}
return this.spShortLinks;
}
/**
* This method initializes panHostUnit
*
* @return javax.swing.JPanel
*/
private JPanel getPanHostUnit() {
if (panHostUnit == null) {
GridBagConstraints hostListConstraint = new GridBagConstraints();
hostListConstraint.gridx = 0;
hostListConstraint.gridy = 0;
hostListConstraint.weightx = 1.0;
hostListConstraint.weighty = 1.0;
hostListConstraint.gridwidth = 2;
hostListConstraint.fill = java.awt.GridBagConstraints.BOTH;
hostListConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
hostListConstraint.insets = new java.awt.Insets(5, 5, 0, 5);
GridBagConstraints lblUnitConstraint = new GridBagConstraints();
lblUnitConstraint.gridx = 0;
lblUnitConstraint.gridy = 1;
lblUnitConstraint.weightx = 0.0;
lblUnitConstraint.weighty = 0.0;
lblUnitConstraint.fill = java.awt.GridBagConstraints.HORIZONTAL;
lblUnitConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
lblUnitConstraint.insets = new java.awt.Insets(7, 7, 0, 5);
GridBagConstraints unitComboConstraint = new GridBagConstraints();
unitComboConstraint.gridx = 1;
unitComboConstraint.gridy = 1;
unitComboConstraint.weightx = 1.0;
unitComboConstraint.weighty = 0.0;
unitComboConstraint.fill = java.awt.GridBagConstraints.HORIZONTAL;
unitComboConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
unitComboConstraint.insets = new java.awt.Insets(5, 5, 0, 5);
GridBagConstraints btnSaveConstraint = new GridBagConstraints();
btnSaveConstraint.gridx = 0;
btnSaveConstraint.gridy = 2;
btnSaveConstraint.weightx = 0.0;
btnSaveConstraint.weighty = 0.0;
btnSaveConstraint.fill = java.awt.GridBagConstraints.NONE;
btnSaveConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
btnSaveConstraint.insets = new java.awt.Insets(5, 5, 5, 5);
panHostUnit = new JPanel();
panHostUnit.setLayout(new GridBagLayout());
panHostUnit.setBorder(javax.swing.BorderFactory.createTitledBorder(rb.getString("panel.admin.host.assignUnitToHost")));
panHostUnit.add(getSpHostsShortLinks(), hostListConstraint);
panHostUnit.add(new JLabel("Unit: "), lblUnitConstraint);
panHostUnit.add(getCbUnits(), unitComboConstraint);
panHostUnit.add(getBtnSaveHostUnit(), btnSaveConstraint);
}
return panHostUnit;
}
/**
* This method initializes panShortLink
*
* @return javax.swing.JPanel
*/
private JPanel getPanShortLink() {
if (panShortLink == null) {
GridBagConstraints btnHelpConstraint = new GridBagConstraints();
btnHelpConstraint.gridx = 0;
btnHelpConstraint.gridy = 0;
btnHelpConstraint.gridwidth = 1;
btnHelpConstraint.fill = java.awt.GridBagConstraints.NONE;
btnHelpConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
btnHelpConstraint.insets = new java.awt.Insets(5, 5, 5, 5);
GridBagConstraints shortLinkListConstraint = new GridBagConstraints();
shortLinkListConstraint.gridx = 0;
shortLinkListConstraint.gridy = 1;
shortLinkListConstraint.weightx = 1.0;
shortLinkListConstraint.weighty = 1.0;
shortLinkListConstraint.gridwidth = 3;
shortLinkListConstraint.fill = java.awt.GridBagConstraints.BOTH;
shortLinkListConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
shortLinkListConstraint.insets = new java.awt.Insets(5, 5, 5, 5);
GridBagConstraints lblViewDocumentConstraint = new GridBagConstraints();
lblViewDocumentConstraint.gridx = 0;
lblViewDocumentConstraint.gridy = 2;
lblViewDocumentConstraint.weightx = 0.0;
lblViewDocumentConstraint.weighty = 0.0;
lblViewDocumentConstraint.fill = java.awt.GridBagConstraints.HORIZONTAL;
lblViewDocumentConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
lblViewDocumentConstraint.insets = new java.awt.Insets(7, 7, 0, 5);
GridBagConstraints viewDocumentComboConstraint = new GridBagConstraints();
viewDocumentComboConstraint.gridx = 1;
viewDocumentComboConstraint.gridy = 2;
viewDocumentComboConstraint.weightx = 1.0;
viewDocumentComboConstraint.weighty = 0.0;
viewDocumentComboConstraint.gridwidth = 2;
viewDocumentComboConstraint.fill = java.awt.GridBagConstraints.HORIZONTAL;
viewDocumentComboConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
viewDocumentComboConstraint.insets = new java.awt.Insets(5, 5, 0, 5);
GridBagConstraints btnSaveConstraint = new GridBagConstraints();
btnSaveConstraint.gridx = 0;
btnSaveConstraint.gridy = 5;
btnSaveConstraint.weightx = 0.0;
btnSaveConstraint.weighty = 0.0;
btnSaveConstraint.fill = java.awt.GridBagConstraints.NONE;
btnSaveConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
btnSaveConstraint.insets = new java.awt.Insets(5, 5, 5, 5);
GridBagConstraints btnNewConstraint = new GridBagConstraints();
btnNewConstraint.gridx = 1;
btnNewConstraint.gridy = 5;
btnNewConstraint.weightx = 0.0;
btnNewConstraint.weighty = 0.0;
btnNewConstraint.fill = java.awt.GridBagConstraints.NONE;
btnNewConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
btnNewConstraint.insets = new java.awt.Insets(5, 5, 5, 5);
GridBagConstraints btnDeleteConstraint = new GridBagConstraints();
btnDeleteConstraint.gridx = 2;
btnDeleteConstraint.gridy = 5;
btnDeleteConstraint.weightx = 0.0;
btnDeleteConstraint.weighty = 0.0;
btnDeleteConstraint.fill = java.awt.GridBagConstraints.NONE;
btnDeleteConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
btnDeleteConstraint.insets = new java.awt.Insets(5, 5, 5, 5);
GridBagConstraints lblShortLinkConstraint = new GridBagConstraints();
lblShortLinkConstraint.gridx = 0;
lblShortLinkConstraint.gridy = 3;
lblShortLinkConstraint.weightx = 0.0;
lblShortLinkConstraint.weighty = 0.0;
lblShortLinkConstraint.fill = java.awt.GridBagConstraints.NONE;
lblShortLinkConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
lblShortLinkConstraint.insets = new java.awt.Insets(7, 7, 0, 0);
GridBagConstraints txtShortLinkConstraint = new GridBagConstraints();
txtShortLinkConstraint.gridx = 1;
txtShortLinkConstraint.gridy = 3;
txtShortLinkConstraint.weightx = 1.0;
txtShortLinkConstraint.weighty = 0.0;
txtShortLinkConstraint.gridwidth = 2;
txtShortLinkConstraint.fill = java.awt.GridBagConstraints.HORIZONTAL;
txtShortLinkConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
txtShortLinkConstraint.insets = new java.awt.Insets(5, 5, 0, 5);
GridBagConstraints lblRedirectUrlConstraint = new GridBagConstraints();
lblRedirectUrlConstraint.gridx = 0;
lblRedirectUrlConstraint.gridy = 4;
lblRedirectUrlConstraint.weightx = 0.0;
lblRedirectUrlConstraint.weighty = 0.0;
lblRedirectUrlConstraint.fill = java.awt.GridBagConstraints.NONE;
lblRedirectUrlConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
lblRedirectUrlConstraint.insets = new java.awt.Insets(7, 7, 0, 0);
GridBagConstraints txtRedirectUrlConstraint = new GridBagConstraints();
txtRedirectUrlConstraint.gridx = 1;
txtRedirectUrlConstraint.gridy = 4;
txtRedirectUrlConstraint.weightx = 1.0;
txtRedirectUrlConstraint.weighty = 0.0;
txtRedirectUrlConstraint.gridwidth = 2;
txtRedirectUrlConstraint.fill = java.awt.GridBagConstraints.HORIZONTAL;
txtRedirectUrlConstraint.anchor = java.awt.GridBagConstraints.NORTHWEST;
txtRedirectUrlConstraint.insets = new java.awt.Insets(5, 5, 0, 5);
panShortLink = new JPanel();
panShortLink.setLayout(new GridBagLayout());
panShortLink.setBorder(javax.swing.BorderFactory.createTitledBorder(rb.getString("panel.admin.host.editShortLink")));
panShortLink.add(getBtnHelp(), btnHelpConstraint);
panShortLink.add(getSpShortLinks(), shortLinkListConstraint);
panShortLink.add(new JLabel(rb.getString("panel.admin.host.language")), lblViewDocumentConstraint);
panShortLink.add(getCbViewDocuments(), viewDocumentComboConstraint);
panShortLink.add(new JLabel("ShortLink: "), lblShortLinkConstraint);
panShortLink.add(getTxtShortLink(), txtShortLinkConstraint);
panShortLink.add(new JLabel("RedirectUrl: "), lblRedirectUrlConstraint);
panShortLink.add(getTxtRedirectUrl(), txtRedirectUrlConstraint);
panShortLink.add(getBtnSaveShortLink(), btnSaveConstraint);
panShortLink.add(getBtnNewShortLink(), btnNewConstraint);
panShortLink.add(getBtnDeleteShortLink(), btnDeleteConstraint);
}
return panShortLink;
}
private void siteShortLinksSelected(boolean val) {
this.getLstHostsShortLinks().setEnabled(val);
this.getLstShortLinks().setEnabled(val);
this.getLstHostsShortLinks().clearSelection();
this.getLstShortLinks().clearSelection();
this.getCbUnits().setEnabled(false);
this.getBtnSaveHostUnit().setEnabled(false);
this.getCbViewDocuments().setEnabled(false);
this.getBtnSaveShortLink().setEnabled(false);
this.getBtnDeleteShortLink().setEnabled(false);
this.getBtnNewShortLink().setEnabled(true);
}
private void updateShortLinkValues(SiteValue vo) {
this.hostsShortLinksListModel.removeAllElements();
this.shortLinksListModel.removeAllElements();
if (vo != null) {
HostValue[] assignedHosts = null;
assignedHosts = this.communication.getHostsForSite(vo.getSiteId());
if (assignedHosts != null) {
for (int i = (assignedHosts.length - 1); i >= 0; i--) {
this.hostsShortLinksListModel.addElement(new DropDownHolder(assignedHosts[i], assignedHosts[i].getHostName()));
}
}
ShortLinkValue[] shortLinks = null;
shortLinks = this.communication.getAllShortLinks4Site(vo.getSiteId());
if (shortLinks != null) {
for (int i = (shortLinks.length - 1); i >= 0; i--) {
this.shortLinksListModel.addElement(new DropDownHolder(shortLinks[i], shortLinks[i].getShortLink()));
}
}
UnitValue[] units4SelectedSite = this.communication.getAllUnits4Site(vo.getSiteId());
((DefaultComboBoxModel) this.getCbUnits().getModel()).removeAllElements();
if (units4SelectedSite != null) {
DropDownHolder[] ddhArray = new DropDownHolder[units4SelectedSite.length + 1];
for (int i = (units4SelectedSite.length - 1); i >= 0; i--) {
ddhArray[i] = new DropDownHolder(units4SelectedSite[i], units4SelectedSite[i].getName());
}
ddhArray[units4SelectedSite.length] = new DropDownHolder(null, "");
Arrays.sort(ddhArray, localeSensitiveStringComparator);
this.getCbUnits().setModel(new DefaultComboBoxModel(ddhArray));
}
ViewDocumentValue[] viewDocuments4SelectedSite = this.communication.getAllViewDocuments4Site(vo.getSiteId());
((DefaultComboBoxModel) this.getCbViewDocuments().getModel()).removeAllElements();
if (viewDocuments4SelectedSite != null) {
DropDownHolder[] ddhArray = new DropDownHolder[viewDocuments4SelectedSite.length];
for (int i = (viewDocuments4SelectedSite.length - 1); i >= 0; i--) {
ddhArray[i] = new DropDownHolder(viewDocuments4SelectedSite[i], viewDocuments4SelectedSite[i].getViewType() + ": " + viewDocuments4SelectedSite[i].getLanguage());
}
Arrays.sort(ddhArray, localeSensitiveStringComparator);
this.getCbViewDocuments().setModel(new DefaultComboBoxModel(ddhArray));
}
}
}
private static Comparator localeSensitiveStringComparator = new Comparator() {
public int compare(Object o1, Object o2) {
String str1 = o1.toString();
String str2 = o2.toString();
Collator collator = Collator.getInstance();
int result = collator.compare(str1, str2);
return result;
}
};
private JComboBox getCbUnits() {
if (this.cbxUnits == null) {
this.cbxUnits = new JComboBox(new DefaultComboBoxModel());
this.cbxUnits.setEditable(false);
this.cbxUnits.setEnabled(false);
}
return this.cbxUnits;
}
/**
* This method initializes btnSaveHostUnit
*
* @return javax.swing.JButton
*/
private JButton getBtnSaveHostUnit() {
if (this.btnSaveHostUnit == null) {
this.btnSaveHostUnit = new JButton();
this.btnSaveHostUnit.setText(rb.getString("dialog.save"));
this.btnSaveHostUnit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
saveHostUnit();
}
});
this.btnSaveHostUnit.setEnabled(false);
}
return this.btnSaveHostUnit;
}
/**
* This method initializes btnSaveShortLink
*
* @return javax.swing.JButton
*/
private JButton getBtnSaveShortLink() {
if (this.btnSaveShortLink == null) {
this.btnSaveShortLink = new JButton();
this.btnSaveShortLink.setText(rb.getString("dialog.save"));
this.btnSaveShortLink.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
validateAndSaveShortLink();
}
});
this.btnSaveShortLink.setEnabled(false);
}
return this.btnSaveShortLink;
}
private JButton getBtnNewShortLink() {
if (this.btnNewShortLink == null) {
this.btnNewShortLink = new JButton();
this.btnNewShortLink.setText(rb.getString("dialog.new"));
this.btnNewShortLink.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
newShortLink();
}
});
this.btnNewShortLink.setEnabled(false);
}
return this.btnNewShortLink;
}
private JButton getBtnDeleteShortLink() {
if (this.btnDeleteShortLink == null) {
this.btnDeleteShortLink = new JButton();
this.btnDeleteShortLink.setText(rb.getString("dialog.delete"));
this.btnDeleteShortLink.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
int ret = JOptionPane.showConfirmDialog(UIConstants.getMainFrame(), rb.getString("comm.removevc.header_offline"), rb.getString("dialog.general.askDelete"), JOptionPane.YES_NO_OPTION);
if (ret == JOptionPane.OK_OPTION) {
deleteShortLink();
}
}
});
this.btnDeleteShortLink.setEnabled(false);
}
return this.btnDeleteShortLink;
}
private void saveHostUnit() {
if (!this.getLstHostsShortLinks().isSelectionEmpty()) {
HostValue selectedHost = (HostValue) ((DropDownHolder) lstHostsShortLinks.getSelectedValue()).getObject();
UnitValue unit = (UnitValue) ((DropDownHolder) getCbUnits().getSelectedItem()).getObject();
if (unit == null) {
selectedHost.setUnitId(null);
} else {
selectedHost.setUnitId(unit.getUnitId());
}
selectedHost = this.communication.saveHost(selectedHost);
}
}
private void validateAndSaveShortLink() {
boolean hasErrors = false;
if (!getTxtShortLink().getText().matches("\\w+")) {
getTxtShortLink().setBackground(Color.red);
hasErrors = true;
} else {
getTxtShortLink().setBackground(Color.white);
}
if (!hasErrors) {
this.saveShortLink();
}
}
private void saveShortLink() {
if (!this.getLstShortLinks().isSelectionEmpty()) {
DropDownHolder ddh = (DropDownHolder) lstShortLinks.getSelectedValue();
ShortLinkValue selectedShortLink = (ShortLinkValue) ddh.getObject();
ViewDocumentValue viewDocument = (ViewDocumentValue) ((DropDownHolder) getCbViewDocuments().getSelectedItem()).getObject();
if (viewDocument == null) {
selectedShortLink.setViewDocumentId(null);
} else {
selectedShortLink.setViewDocumentId(viewDocument.getViewDocumentId());
}
selectedShortLink.setShortLink(getTxtShortLink().getText());
selectedShortLink.setRedirectUrl(getTxtRedirectUrl().getText());
if (selectedShortLink.getShortLinkId() > 0) {
selectedShortLink = this.communication.saveShortLink(selectedShortLink);
} else {
selectedShortLink = this.communication.createShortLink(selectedShortLink);
}
((SortingListModel) this.lstShortLinks.getModel()).removeElementAt(this.lstShortLinks.getSelectedIndex());
((SortingListModel) this.lstShortLinks.getModel()).addElement(new DropDownHolder(selectedShortLink, selectedShortLink.getShortLink()));
}
}
private void newShortLink() {
if (!this.getTblSitesShortLinks().getSelectionModel().isSelectionEmpty()) {
SiteValue siteValue = (SiteValue) tblSitesShortLinksSorter.getValueAt(getTblSitesShortLinks().getSelectedRow(), 2);
ShortLinkValue newShortLink = new ShortLinkValue();
newShortLink.setShortLink("<new ShortLink>");
newShortLink.setSiteId(siteValue.getSiteId());
newShortLink.setRedirectUrl("");
newShortLink.setShortLinkId(-1);
DropDownHolder ddh = new DropDownHolder(newShortLink, newShortLink.getShortLink());
this.shortLinksListModel.addElement(ddh);
this.getLstShortLinks().setSelectedValue(ddh, true);
this.getCbViewDocuments().setSelectedIndex(0);
this.getTxtShortLink().setText(newShortLink.getShortLink());
this.getTxtRedirectUrl().setText(newShortLink.getRedirectUrl());
}
}
private void deleteShortLink() {
if (!this.getLstShortLinks().isSelectionEmpty()) {
ShortLinkValue selectedShortLink = (ShortLinkValue) ((DropDownHolder) lstShortLinks.getSelectedValue()).getObject();
this.communication.deleteShortLink(selectedShortLink.getShortLinkId());
this.shortLinksListModel.removeElement(lstShortLinks.getSelectedValue());
this.getLstShortLinks().clearSelection();
}
}
private JComboBox getCbViewDocuments() {
if (this.cbxViewDocuments == null) {
this.cbxViewDocuments = new JComboBox(new DefaultComboBoxModel());
this.cbxViewDocuments.setEditable(false);
this.cbxViewDocuments.setEnabled(false);
}
return this.cbxViewDocuments;
}
private JTextField getTxtShortLink() {
if (this.txtShortLink == null) {
this.txtShortLink = new JTextField();
this.txtShortLink.setEnabled(false);
}
return this.txtShortLink;
}
private JTextField getTxtRedirectUrl() {
if (this.txtRedirectUrl == null) {
this.txtRedirectUrl = new JTextField();
this.txtRedirectUrl.setEnabled(false);
}
return this.txtRedirectUrl;
}
private JButton getBtnHelp() {
if (this.btnHelp == null) {
this.btnHelp = new JButton(rb.getString("ribbon.help"));
this.btnHelp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
help();
}
});
}
return this.btnHelp;
}
private void help() {
JOptionPane.showMessageDialog(UIConstants.getMainFrame(), new JLabel(rb.getString("panel.admin.host.help")), rb.getString("ribbon.help"), JOptionPane.INFORMATION_MESSAGE);
}
} // @jve:decl-index=0:visual-constraint="10,10"