/*
* #%L
* =====================================================
* _____ _ ____ _ _ _ _
* |_ _|_ __ _ _ ___| |_ / __ \| | | | ___ | | | |
* | | | '__| | | / __| __|/ / _` | |_| |/ __|| |_| |
* | | | | | |_| \__ \ |_| | (_| | _ |\__ \| _ |
* |_| |_| \__,_|___/\__|\ \__,_|_| |_||___/|_| |_|
* \____/
*
* =====================================================
*
* Hochschule Hannover
* (University of Applied Sciences and Arts, Hannover)
* Faculty IV, Dept. of Computer Science
* Ricklinger Stadtweg 118, 30459 Hannover, Germany
*
* Email: trust@f4-i.fh-hannover.de
* Website: http://trust.f4.hs-hannover.de/
*
* This file is part of visitmeta-visualization, version 0.6.0,
* implemented by the Trust@HsH research group at the Hochschule Hannover.
* %%
* Copyright (C) 2012 - 2016 Trust@HsH
* %%
* 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.
* #L%
*/
package de.hshannover.f4.trust.visitmeta.gui.dialog;
import java.awt.GridBagLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JTextField;
import de.hshannover.f4.trust.visitmeta.gui.util.DocumentChangedListener;
import de.hshannover.f4.trust.visitmeta.gui.util.ParameterPanel;
import de.hshannover.f4.trust.visitmeta.interfaces.data.Data;
import de.hshannover.f4.trust.visitmeta.interfaces.data.DataserviceData;
public class DataServiceParameterPanel extends ParameterPanel {
private static final long serialVersionUID = -4830135051242549298L;
private JLabel mJlName;
private JLabel mJlUrl;
private JLabel mJlRawXml;
private JTextField mJtfUrl;
private JTextField mJtfName;
private JCheckBox mJcbRawXML;
private DataserviceData mConnectionData;
private DocumentChangedListener mDocumentChangedListener;
private ItemListener mItemListener;
public DataServiceParameterPanel() {
createPanels();
}
public DataServiceParameterPanel(DataserviceData connectionData) {
mConnectionData = connectionData;
createPanels();
updatePanel();
addChangeListeners();
}
private void createPanels() {
setLayout(new GridBagLayout());
mJlUrl = new JLabel("Url");
mJlName = new JLabel("Name");
mJlRawXml = new JLabel("RAW-XML");
mJtfUrl = new JTextField();
mJtfName = new JTextField();
mJtfName.setEditable(false);
mJcbRawXML = new JCheckBox();
// x y w h wx wy
LayoutHelper.addComponent(0, 0, 1, 1, 1.0, 1.0, this, mJlName, LayoutHelper.LABEL_INSETS);
LayoutHelper.addComponent(1, 0, 1, 1, 1.0, 1.0, this, mJtfName, LayoutHelper.LABEL_INSETS);
LayoutHelper.addComponent(0, 1, 1, 1, 1.0, 1.0, this, mJlUrl, LayoutHelper.LABEL_INSETS);
LayoutHelper.addComponent(1, 1, 1, 1, 1.0, 1.0, this, mJtfUrl, LayoutHelper.LABEL_INSETS);
LayoutHelper.addComponent(0, 2, 1, 1, 1.0, 1.0, this, mJlRawXml, LayoutHelper.LABEL_INSETS);
LayoutHelper.addComponent(1, 2, 1, 1, 1.0, 1.0, this, mJcbRawXML, LayoutHelper.LABEL_INSETS);
}
private void addChangeListeners() {
mDocumentChangedListener = new DocumentChangedListener() {
@Override
protected void dataChanged() {
fireParameterChanged();
}
};
mItemListener = new ItemListener() {
@Override
public void itemStateChanged(ItemEvent event) {
fireParameterChanged();
}
};
mJtfName.getDocument().addDocumentListener(mDocumentChangedListener);
mJtfUrl.getDocument().addDocumentListener(mDocumentChangedListener);
mJcbRawXML.addItemListener(mItemListener);
}
private void updatePanel() {
mJtfName.setText(mConnectionData.getName());
mJtfUrl.setText(mConnectionData.getUrl());
mJcbRawXML.setSelected(mConnectionData.isRawXml());
}
@Override
public Data getData() {
mConnectionData.setName(mJtfName.getText().trim());
mConnectionData.setUrl(mJtfUrl.getText().trim());
mConnectionData.setRawXml(mJcbRawXML.isSelected());
return mConnectionData;
}
@Override
public void setNameTextFieldEditable() {
mJtfName.setEditable(true);
}
}