/*******************************************************************************
* Copyright (c) 2016 Weasis Team and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Nicolas Roduit - initial API and implementation
*******************************************************************************/
package org.weasis.dicom.explorer.pref.node;
import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;
import org.weasis.core.api.gui.util.AbstractItemDialogPage;
import org.weasis.core.api.gui.util.JMVUtils;
import org.weasis.dicom.explorer.Messages;
import org.weasis.dicom.util.StringUtil;
@SuppressWarnings("serial")
public class DicomNodeListView extends AbstractItemDialogPage {
public DicomNodeListView() {
super(Messages.getString("DicomNodeListView.node_list")); //$NON-NLS-1$
initGUI();
}
private void initGUI() {
setBorder(new EmptyBorder(15, 10, 10, 10));
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
buildPanel(AbstractDicomNode.Type.DICOM_CALLING);
buildPanel(AbstractDicomNode.Type.DICOM);
buildPanel(AbstractDicomNode.Type.WEB);
// buildPanel(AbstractDicomNode.Type.WEB_QIDO);
}
private void buildPanel(AbstractDicomNode.Type nodeType) {
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, nodeType.toString(), TitledBorder.LEADING,
TitledBorder.TOP, null, null));
add(panel);
GridBagLayout gblPanel1 = new GridBagLayout();
panel.setLayout(gblPanel1);
JLabel label1 = new JLabel();
label1.setText(Messages.getString("DicomNodeListView.node") + StringUtil.COLON); //$NON-NLS-1$
GridBagConstraints gbcLabel1 = new GridBagConstraints();
gbcLabel1.anchor = GridBagConstraints.WEST;
gbcLabel1.insets = new Insets(0, 0, 5, 5);
gbcLabel1.gridx = 0;
gbcLabel1.gridy = 0;
panel.add(label1, gbcLabel1);
final JComboBox<AbstractDicomNode> nodeComboBox = new JComboBox<>();
AbstractDicomNode.loadDicomNodes(nodeComboBox, nodeType);
GridBagConstraints gbcComboBox = new GridBagConstraints();
gbcComboBox.anchor = GridBagConstraints.NORTHWEST;
gbcComboBox.insets = new Insets(0, 0, 5, 5);
gbcComboBox.gridx = 1;
gbcComboBox.gridy = 0;
panel.add(nodeComboBox, gbcComboBox);
JMVUtils.setPreferredWidth(nodeComboBox, 185, 185);
AbstractDicomNode.addTooltipToComboList(nodeComboBox);
Component horizontalStrut = Box.createHorizontalStrut(20);
GridBagConstraints gbcHorizontalStrut = new GridBagConstraints();
gbcHorizontalStrut.anchor = GridBagConstraints.WEST;
gbcHorizontalStrut.insets = new Insets(0, 0, 5, 5);
gbcHorizontalStrut.gridx = 2;
gbcHorizontalStrut.gridy = 0;
panel.add(horizontalStrut, gbcHorizontalStrut);
JButton editButton = new JButton();
editButton.setText(Messages.getString("DicomNodeListView.edit")); //$NON-NLS-1$
GridBagConstraints gbcButton1 = new GridBagConstraints();
gbcButton1.anchor = GridBagConstraints.NORTHWEST;
gbcButton1.insets = new Insets(0, 0, 5, 5);
gbcButton1.gridx = 3;
gbcButton1.gridy = 0;
panel.add(editButton, gbcButton1);
JButton deleteButton = new JButton();
deleteButton.setText(Messages.getString("DicomNodeListView.delete")); //$NON-NLS-1$
GridBagConstraints gbcButton2 = new GridBagConstraints();
gbcButton2.insets = new Insets(0, 0, 5, 5);
gbcButton2.anchor = GridBagConstraints.NORTHWEST;
gbcButton2.gridx = 4;
gbcButton2.gridy = 0;
panel.add(deleteButton, gbcButton2);
JButton addNodeButton = new JButton(Messages.getString("DicomNodeListView.add_new")); //$NON-NLS-1$
GridBagConstraints gbcButton = new GridBagConstraints();
gbcButton.gridwidth = 2;
gbcButton.anchor = GridBagConstraints.NORTHWEST;
gbcButton.insets = new Insets(10, 0, 5, 5);
gbcButton.gridx = 3;
gbcButton.gridy = 1;
panel.add(addNodeButton, gbcButton);
deleteButton.addActionListener(e -> AbstractDicomNode.deleteNodeActionPerformed(nodeComboBox));
editButton.addActionListener(e -> AbstractDicomNode.editNodeActionPerformed(nodeComboBox));
addNodeButton.addActionListener(
e -> AbstractDicomNode.addNodeActionPerformed(nodeComboBox, nodeType));
Box verticalBox = Box.createVerticalBox();
GridBagConstraints gbcVerticalBox = new GridBagConstraints();
gbcVerticalBox.weighty = 1.0;
gbcVerticalBox.weightx = 1.0;
gbcVerticalBox.insets = new Insets(0, 0, 5, 0);
gbcVerticalBox.fill = GridBagConstraints.BOTH;
gbcVerticalBox.anchor = GridBagConstraints.NORTHWEST;
gbcVerticalBox.gridx = 4;
gbcVerticalBox.gridy = 2;
panel.add(verticalBox, gbcVerticalBox);
}
@Override
public void closeAdditionalWindow() {
// Do nothing
}
@Override
public void resetoDefaultValues() {
// Do nothing
}
}