Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2014 Leibniz Institute of Plant Genetics and Crop Plant Research (IPK), Gatersleben, Germany.
   * All rights reserved. This program and the accompanying materials
   * are made available under the terms of the Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0)
   * which accompanies this distribution, and is available at http://creativecommons.org/licenses/by-nd/4.0/
   *
   * Contributors:
   *      Leibniz Institute of Plant Genetics and Crop Plant Research (IPK), Gatersleben, Germany - RMI Client, FileChooser and WebDAV
   */
 package de.ipk_gatersleben.bit.bi.edal.publication.attribute.panel;
 
 import java.awt.Color;
 
 
 
 public class AuthorsPanel extends JPanel implements ActionListener {
 
 	private static final long serialVersionUID = 8109825692298261311L;
 
 	private static final AttributeLabel AUTHORS_LABEL = new AttributeLabel(..getProperty("AUTHORS_LABEL"), ..getProperty("AUTHORS_TOOLTIP"));
 
 	private static final SmallButton OKAY_BUTTON = new SmallButton("OK");
 	private static final SmallButton ADD_BUTTON = new SmallButton("ADD AUTHOR");
 	private static final SmallButton REMOVE_BUTTON = new SmallButton("REMOVE AUTHOR");
 
 	private JTable table;
 
 	private static final String CORRESPONDING_AUTOR = "Corresponding author";
 	private static final String CONTRIBUTOR = "Contributor";
 
 	private static final String[] value = {  };
 
 	private static final String[] DEFAULT_AUTHOR_VALUE = new String[] { [0], """""Leibniz Institute of Plant Genetics and Crop Plant Research (IPK), OT Gatersleben, Corrensstra├če 3, Stadt Seeland""06466""Germany" };
 
 	// private static final String[] DEFAULT_CONTRIBUTOR_VALUE = new String[] {
 	// value[1], "", "", "Stadt Seeland, OT Gatersleben, Corrensstra├če 3",
 	// "06466", "Germany" };
 
 	private static final String[] COL_NAMES = { "Role""Given Name""Surname""Address""Zip""Country" };
 
 	public AuthorsPanel() {
 
 		 = new MyTableModel();
 		 = new JTable();
 
 		// set the editor as default on every column
 		for (int i = 0; i < .getColumnCount(); i++) {
 		}
 
 		.getTableHeader().setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, .));
 
		JComboBox<StringcomboRow = new JComboBox<String>();
		col.setCellEditor(new DefaultCellEditor(comboRow));
		JPanel buttonPanel = new JPanel(new FlowLayout(.));
		buttonPanel.add();
		buttonPanel.add();
		buttonPanel.add();
		GridBagLayout grid = new GridBagLayout();
		JPanel tablePanel = new JPanel(grid);
		EmptyBorder inBorder = new EmptyBorder(5, 5, 0, 5);
		EmptyBorder outBorder = new EmptyBorder(5, 5, 0, 5);
		tablePanel.setBorder(BorderFactory.createCompoundBorder(outBorderinBorder));
		Utils.add(tablePanelgrid, 0, 0, 1, 1, 1, 0.95, 1, 1);
		Utils.add(tablePanelgridbuttonPanel, 0, 1, 1, 1, 1, 0.05, 1, 1);
		JPanel attributePanel = new JPanel(new GridLayout());
		this.setLayout(new BorderLayout());
		this.add(attributePanel.);
		this.add(tablePanel.);
	}
	public void actionPerformed(ActionEvent actionEvent) {
		if (actionEvent.getSource().equals()) {
			CellEditor cellEditor = this..getCellEditor();
			if (cellEditor != null && cellEditor.getCellEditorValue() == null) {
				cellEditor.stopCellEditing();
			}
			/* clear(unselect) selected rows */
			/* remove rows without any name */
			ArrayList<IntegeremptyLines = new ArrayList<Integer>();
			for (int i = 0; i < this..getRowCount(); i++) {
				if (Utils.checkIfStringIsEmpty(this..getValueAt(i, 2).toString()) && Utils.checkIfStringIsEmpty(this..getValueAt(i, 1).toString())) {
					emptyLines.add(i);
				}
			}
			for (int i = emptyLines.size() - 1; i >= 0; i--) {
				this..removeRow(emptyLines.get(i));
			}
			PublicationMainPanel.releaseAllBlockedFields();
			PublicationFrame.updateUI();
			PublicationModul.getFrame().requestFocusInWindow();
			PublicationButtonLinePanel.getSubmitButton().requestFocus();
else if (actionEvent.getSource().equals()) {
			boolean correspondingAuthorSetted = false;
			for (int i = 0; i < this..getRowCount(); i++) {
				if (this..getValueAt(i, 0).toString().equals([0].toString())) {
					correspondingAuthorSetted = true;
					break;
				}
			}
			if (this..getSelectedRow() != -1) {
				if (correspondingAuthorSetted) {
					this..insertRow(this..getSelectedRow() + 1, new String[] { [1], """"this..getValueAt(this..getSelectedRow(), 3).toString(), this..getValueAt(this..getSelectedRow(), 4).toString(), this..getValueAt(this..getSelectedRow(), 5).toString() });
else {
					this..insertRow(this..getSelectedRow() + 1, new String[] { [0], """"this..getValueAt(this..getSelectedRow(), 3).toString(), this..getValueAt(this..getSelectedRow(), 4).toString(), this..getValueAt(this..getSelectedRow(), 5).toString() });
				}
else {
				if (correspondingAuthorSetted) {
					this..addRow(new String[] { [1], """"this..getValueAt(this..getRowCount() - 1, 3).toString(), this..getValueAt(this..getRowCount() - 1, 4).toString(), this..getValueAt(this..getRowCount() - 1, 5).toString() });
else {
					if (this..getRowCount() != 0) {
						this..addRow(new String[] { [0], """"this..getValueAt(this..getRowCount() - 1, 3).toString(), this..getValueAt(this..getRowCount() - 1, 4).toString(), this..getValueAt(this..getRowCount() - 1, 5).toString() });
else {
					}
				}
			}
		}
		else if (actionEvent.getSource().equals()) {
			CellEditor cellEditor = this..getCellEditor();
			if (cellEditor != null && cellEditor.getCellEditorValue() == null) {
				cellEditor.stopCellEditing();
			}
			if (this..getRowCount() != 0) {
				if (this..getSelectedRow() == -1) {
					this..removeRow(this..getRowCount() - 1);
else {
				}
			}
		}
	}
	private void saveUserValues() {
		String authorSeperator = new String(";");
		String nameSeperator = new String("@");
		StringBuffer buffer = new StringBuffer("");
		for (int i = 0; i < this..getRowCount(); i++) {
			if (!Utils.checkIfStringIsEmpty(this..getValueAt(i, 2).toString()) && !Utils.checkIfStringIsEmpty(this..getValueAt(i, 1).toString())) {
				buffer.append(this..getValueAt(i, 0).toString());
				buffer.append(nameSeperator);
				buffer.append(this..getValueAt(i, 1).toString());
				buffer.append(nameSeperator);
				buffer.append(this..getValueAt(i, 2).toString());
				buffer.append(nameSeperator);
				buffer.append(this..getValueAt(i, 3).toString());
				buffer.append(nameSeperator);
				buffer.append(this..getValueAt(i, 4).toString());
				buffer.append(nameSeperator);
				buffer.append(this..getValueAt(i, 5).toString());
				buffer.append(authorSeperator);
			}
		}
		PropertyLoader.setUserValue("AUTHORS"buffer.toString());
	}
	private class MyTableModel extends DefaultTableModel {
		private static final long serialVersionUID = 8557354261856948625L;
		public MyTableModel() {
		}
		private Object[][] loadUserValues() {
			if (string == null || string.isEmpty()) {
				return new Objects[0][0];
else {
				String[] authors = string.split(";");
				Object[][] data = new Object[authors.length][6];
				for (int i = 0; i < authors.lengthi++) {
					if (authors[i] == null || authors[i].isEmpty()) {
						return data;
else {
						String[] author = authors[i].split("@");
						for (int j = 0; j < author.lengthj++) {
							data[i][j] = author[j];
						}
					}
				}
				return data;
			}
		}
	}
	private String getTableContent() {
		if (this.getCreators().length == 0) {
			return ..getProperty("DEFAULT_AUTHORS_STRING");
		}
		String authorSeperator = new String("; ");
		String nameSeperator = new String(", ");
		StringBuffer buffer = new StringBuffer("");
		for (int i = 0; i < this..getRowCount(); i++) {
			if (!Utils.checkIfStringIsEmpty(this..getValueAt(i, 2).toString()) && !Utils.checkIfStringIsEmpty(this..getValueAt(i, 1).toString())) {
				buffer.append(this..getValueAt(i, 2).toString());
				buffer.append(nameSeperator);
				buffer.append(this..getValueAt(i, 1).toString());
				buffer.append(authorSeperator);
else if (!Utils.checkIfStringIsEmpty(this..getValueAt(i, 1).toString())) {
				buffer.append(this..getValueAt(i, 1).toString());
				buffer.append(authorSeperator);
else if (!Utils.checkIfStringIsEmpty(this..getValueAt(i, 2).toString())) {
				buffer.append(this..getValueAt(i, 2).toString());
				buffer.append(authorSeperator);
			}
		}
		if (buffer.toString().lastIndexOf(authorSeperator) == -1) {
			return ..getProperty("DEFAULT_AUTHORS_STRING");
else {
			return buffer.toString().substring(0, buffer.toString().lastIndexOf(authorSeperator));
		}
	}
	public NaturalPerson[] getCreators() {
		for (int i = 0; i < this..getRowCount(); i++) {
				creators.add(new NaturalPerson(this..getValueAt(i, 1).toString(), this..getValueAt(i, 2).toString(), this..getValueAt(i, 3).toString(), this..getValueAt(i, 4).toString(), this..getValueAt(i, 5).toString()));
			}
		}
		return creators.toArray(new NaturalPerson[creators.size()]);
	}
		for (int i = 0; i < this..getRowCount(); i++) {
			if (this..getValueAt(i, 0).toString().equals()) {
				contributors.add(new NaturalPerson(this..getValueAt(i, 1).toString(), this..getValueAt(i, 2).toString(), this..getValueAt(i, 3).toString(), this..getValueAt(i, 4).toString(), this..getValueAt(i, 5).toString()));
			}
		}
		return contributors.toArray(new NaturalPerson[contributors.size()]);
	}
	public String getAuthors() {
		String authorSeperator = new String("; ");
		String nameSeperator = new String(", ");
		StringBuffer buffer = new StringBuffer("");
		for (int i = 0; i < this..getRowCount(); i++) {
			if (this..getValueAt(i, 0).equals([0])) {
				if (!Utils.checkIfStringIsEmpty(this..getValueAt(i, 2).toString()) && !Utils.checkIfStringIsEmpty(this..getValueAt(i, 1).toString())) {
					buffer.append(this..getValueAt(i, 2).toString());
					buffer.append(nameSeperator);
					buffer.append(this..getValueAt(i, 1).toString());
					buffer.append(authorSeperator);
				}
				else if (!Utils.checkIfStringIsEmpty(this..getValueAt(i, 1).toString())) {
					buffer.append(this..getValueAt(i, 1).toString());
					buffer.append(authorSeperator);
else if (!Utils.checkIfStringIsEmpty(this..getValueAt(i, 2).toString())) {
					buffer.append(this..getValueAt(i, 2).toString());
					buffer.append(authorSeperator);
else {
					// do nothing
				}
			}
		}
		if (buffer.toString().lastIndexOf(authorSeperator) != -1) {
			return buffer.toString().substring(0, buffer.toString().lastIndexOf(authorSeperator));
else {
			return ..getProperty("DEFAULT_AUTHORS_STRING");
		}
	}
	public void reset() {
		this. = new MyTableModel();
		this. = new JTable(this.);
	}
New to GrepCode? Check out our FAQ X