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.rmi.client.gui;
  
  import java.awt.Color;
  import java.awt.Cursor;
  import java.awt.Dialog;
  import java.awt.Font;
  import java.awt.Frame;
  import java.awt.Point;
  import java.util.HashMap;
  import java.util.HashSet;
  import java.util.List;
  import java.util.Map;
  import java.util.Set;
  
  import javax.swing.JTree;
  
  
  
EDALFileChooser provides a simple mechanism for the user to choose a file from EDAL File System.

The following code pops up a file chooser for the user that sees only .jpg and .gif images:

 EDALFileChooser chooser = new EDALFileChooser((Frame) window, rootDirectory);
 EdalFileNameExtensionFilter filter = new EdalFileNameExtensionFilter("JPG & GIF Images", "jpg", "gif");
 chooser.setFileFilter(filter);
 int returnVal = chooser.showOpenDialog();
 if (returnVal == EDALFileChooser.APPROVE_OPTION) {
  System.out.println("You chose to open this file: " + chooser.getSelectedFile().getName());
 }
 

Author(s):
Jinbo Chen
Version:
1.0
Beaninfo:
attribute: isContainer false description: A component which allows for the interactive selection of a file.
 
 
 public class EdalFileChooser extends EdalTitleDialog {
 	private class LinkMouseListener extends MouseAdapter {
 		private final int versionidx;
 		private final JPanel detailpanelparent;
 
 		public LinkMouseListener(final List<JVersionLabelversionbuttonlistfinal int versionidxfinal JPanel detailpanelparent) {
 			this. = versionidx;
 			this. = detailpanelparent;
 			this. = versionbuttonlist;
 		}
 
 		public void mouseClicked(final java.awt.event.MouseEvent evt) {
 			if (this. != null) {
 				for (int i = 0; i < this..size(); i++) {
 					if (i != this.) {
 					} else {
 					}
 				}
 			}
 			{
 			}
 			else if (EdalFileChooser.this..size() > 0 && EdalFileChooser.this..get(EdalFileChooser.this.) != null) {
 			}
 		}
 	}
 
 	private class TableRowModelListener implements ListSelectionListener {
 		private final JTable table;
 		private final JPanel detailpanelparent;
 
 		public TableRowModelListener(final JTable tablefinal JPanel detailpanelparent) {
 			this. = table;
 			this. = detailpanelparent;
 		}
 
 		public void valueChanged(final ListSelectionEvent e) {
 			EdalFileChooser.this. = true;
 			final boolean b = this..getSelectionModel().getValueIsAdjusting();
 			if (!b) {
 				if (this..getSelectedRow() > -1) {
 					if (EdalFileChooser.this..length == 1) {
 						try {
 						} catch (final RemoteException e1) {
 							ErrorDialog.showError(e1);
 						}
 					} else {
 					}
 
 					if (EdalFileChooser.this. != null) {
 						}
 					}
 
 				}
 			}
 		}
 
 	}
 
 	private static final long serialVersionUID = 1L;
 	private static final Font FONT = new Font("Courier New"., 12);
 	private DefaultTableModel defaultModel = null;
 	private JTable filemetatable = null;
 	private final List<Stringmetadatatoshow = new ArrayList<String>();
 	private final Map<StringJTextFielddetailmap = new HashMap<StringJTextField>();
 	private boolean bindui = false;
 	private final JLabel pathlabel = new JLabel("Path:".);
 	protected final JTextField pathtext = new JTextField();
 	protected ClientPrimaryDataEntity selectedFile = null;
 	private final JTextField searchtext = new JTextField();
 	protected JButton okbutton;
 	private int[] selectrows;
 	private EdalAbstractFileFilter fileFilter = null;
 	private boolean savemodal = false;
 	private int fileselectindex;
 	private String username = null;
 	private static final String CHANGEMETADATAMETHODNAME = "setMetaData";
 	private static final String CHANGEPERMISSIONTHODNAME = "grantPermission";
 	private JTree tree;
 	private JButton configbutton = new JButton("eDAL Configration");
 	private JButton metadatabutton = new JButton("ChangeMetadata");
 	private JButton permissionbutton = new JButton("ChangePermissions");
 	private Color tablebackcolor = null;
 	private XStatusBar statusbar = null;
 	private boolean showconnbutton = false;
 
 	private final JPanel centerPane = new JPanel();
 	private boolean isSelected = false;
Return value if cancel is chosen.
 
 	public static final int CANCEL_OPTION = 1;

Return value if approve (yes, ok) is chosen.
 
 	public static final int APPROVE_OPTION = 0;

Return value if an error occured.
 
 	public static final int ERROR_OPTION = -1;

Instruction to display only files.
 
 	public static final int FILES_ONLY = 0;

Instruction to display only directories.
 
 	public static final int DIRECTORIES_ONLY = 1;
Instruction to display both files and directories.
 
 	public static final int FILES_AND_DIRECTORIES = 2;
the max length of description and date
 
 	private static final int TEXTLIMIT = 40;

the max length of tooltips
 
 	private static final int TOOLTIPSLEN = 20;
the max length of metadata abstract
 
 	private static final int METADATALEN = 80;
 	private boolean multiSelectionEnabled = false;
 	private final Map<StringStringtipsmap = new HashMap<StringString>();
 	private int row;
 
 	private int column;
 
 	private ClientDataManager client = null;
 
 	private final Action cancelAction = new AbstractAction(.) {
 		private static final long serialVersionUID = 1L;
 
 		public void actionPerformed(final ActionEvent e) {
 		}
 	};
 
 	private final Action searchAction = new AbstractAction(.) {
 		private static final long serialVersionUID = 1L;
 
 		public void actionPerformed(final ActionEvent e) {
 		}
 	};
 
Constructs a EDALFileChooser that is initialized with owner as the swing container owner(JDialog), rootDirectory as the root directory, and client as the rmi client datamanager. If any of the parameters are null this method will not initialize.

Parameters:
owner the swing container owner
client the rmi client datamanager
 
 	public EdalFileChooser(final Dialog ownerfinal ClientDataManager client) {
 		super(owner);
 		if (client != null) {
 			this. = client;
 			try {
 				this. = client.getRootDirectory();
 			} catch (final RemoteException e1) {
 				ErrorDialog.showError(e1);
 			} catch (final EdalAuthenticateException e1) {
 				ErrorDialog.showError(e1);
 			}
 
 			catch (final NotBoundException e1) {
 				ErrorDialog.showError(e1);
 			} catch (final PrimaryDataDirectoryException e1) {
 				ErrorDialog.showError(e1);
 			} catch (final EdalException e1) {
 				ErrorDialog.showError(e1);
 			}
 			this. = client.getAuthentication().getName();
 			this. = new XStatusBar(client.getServerAddress(), client.getRegistryPort(), this.);
 		}
 	}

Constructs a EDALFileChooser that is initialized with owner as the swing container owner(JFrame), rootDirectory as the root directory, and client as the rmi client datamanager. If any of the parameters are null this method will not initialize.

Parameters:
owner the swing container owner
client the rmi client datamanager
 
 
 	public EdalFileChooser(final Frame ownerfinal ClientDataManager client) {
 		super(owner);
 		if (client != null) {
 			this. = client;
 			try {
 				this. = client.getRootDirectory();
 			} catch (final RemoteException e1) {
 				ErrorDialog.showError(e1);
 			} catch (final EdalAuthenticateException e1) {
 				ErrorDialog.showError(e1);
 			}
 
 			catch (final NotBoundException e1) {
 				ErrorDialog.showError(e1);
 			} catch (final PrimaryDataDirectoryException e1) {
 				ErrorDialog.showError(e1);
 			} catch (final EdalException e1) {
 				ErrorDialog.showError(e1);
 			}
 			this. = client.getAuthentication().getName();
 			this. = new XStatusBar(client.getServerAddress(), client.getRegistryPort(), this.);
 		}
 	}
 
 	private DefaultMutableTreeNode addNodes(final DefaultMutableTreeNode curTopfinal ClientPrimaryDataDirectory parentdir) {
 		DefaultMutableTreeNode curDir = null;
 		try {
 			curDir = new EdalMutableTreeModel(new EdalNode(parentdir.getName(), parentdir.getPath()));
 			if (curTop != null) {
 				curTop.add(curDir);
 			}
 			
 			if (parentdir.isDirectory()) {
 				final List<ClientPrimaryDataEntitydirlist = parentdir.listPrimaryDataEntities();
 				final List<Stringdirnamelist = new ArrayList<String>();
 
 				if (dirlist != null) {
 					for (final ClientPrimaryDataEntity dir : dirlist) {
 						ClientPrimaryDataEntityVersion version = null;
 						try {
 							version = dir.getCurrentVersion();
 							if (dir.isDirectory() && !version.isDeleted()) {
 								dirnamelist.add(dir.getName());
 								dirnamemap.put(dir.getName(), dir);
 							}
 						} catch (final Exception e) {
 							// we don't have the permission to call
 							// getCurrentVersion method
 						}
 					}
 				}
 				Collections.sort(dirnamelist.);
 
 				for (final String dirname : dirnamelist) {
 					final DefaultMutableTreeNode child = new EdalMutableTreeModel(new EdalNode(dirname, ((ClientPrimaryDataDirectorydirnamemap.get(dirname)).getPath()));
 					curDir.add(child);
 				}
 			}
 		} catch (final RemoteException e) {
 			ErrorDialog.showError(e);
 		} catch (final PrimaryDataDirectoryException e) {
 			ErrorDialog.showError(e);
 		}
 		return curDir;
 	}
 
 	private void buidversionpanel(final LailapsJXTaskPane versionpanelfinal ClientPrimaryDataEntityVersion[] versionarraythrows RemoteException {
 		versionpanel.setJSplitPane(this.);
 		versionpanel.setFriendpanel(this.);
 		this..setFriendpanel(versionpanel);
 		versionpanel.setName("Version Information");
 		((JComponentversionpanel.getContentPane()).setBorder(BorderFactory.createEmptyBorder());
 		versionpanel.setTitle("Version Information");
 		if (!versionpanel.isCollapsed()) {
 			versionpanel.setCollapsed(true);
 			versionpanel.setScrollOnExpand(true);
 		}
 
 		final int iversionlen = versionarray.length;
 
 		int versioncolumnlen = iversionlen / 2;
 
 		if (versioncolumnlen * 2 < iversionlen) {
 			versioncolumnlen++;
 		}
 
 		final List<JVersionLabelversionbuttonlist = new ArrayList<JVersionLabel>();
 
 		versionpanel.removeAll();
 		versionpanel.setLayout(new MigLayout("""[45%!][10%!][45%!]""[]0"));
 
 		for (int i = 0; i < versioncolumnleni++) {
 			String strdate = null;
 			final SimpleDateFormat dataformat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
 			if (versionarray[i * 2].getRevisionDate() != null) {
 				strdate = dataformat.format(versionarray[i * 2].getRevisionDate().getTime());
 			}
 			final JVersionLabel label1 = new JVersionLabel("Version " + versionarray[i * 2].getRevision() + " : " + strdate + (versionarray[i * 2].isDeleted() ? " - deleted." : ""));
 			versionbuttonlist.add(label1);
 			label1.addMouseListener(new LinkMouseListener(versionbuttonlisti * 2, this.));
 
 			versionpanel.add(label1"cell 0 " + i + " 1 1");
 			this..add(versionarray[i * 2]);
 
 			if (i * 2 + 1 < versionarray.length) {
 				strdate = dataformat.format(versionarray[i * 2 + 1].getRevisionDate().getTime());
 				final JVersionLabel label2 = new JVersionLabel("Version " + versionarray[i * 2 + 1].getRevision() + " : " + strdate + (versionarray[i * 2 + 1].isDeleted() ? " - deleted." : ""));
 				label2.addMouseListener(new LinkMouseListener(versionbuttonlisti * 2 + 1, this.));
 				versionpanel.add(label2"cell 2 " + i + " 1 1");
 				this..add(versionarray[i * 2 + 1]);
 				versionbuttonlist.add(label2);
 			}
 
 		}
 
 		if (versionbuttonlist.size() > 0) {
 			versionbuttonlist.get(versionbuttonlist.size() - 1).setSelect(true);
 			String strdate = null;
 			final SimpleDateFormat dataformat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
 			if (.get(.size() - 1).getRevisionDate() != null) {
 				strdate = dataformat.format(.get(.size() - 1).getRevisionDate().getTime());
 			}
 			this..setTitle("Version " + .get(.size() - 1).getRevision() + " :  " + strdate + (.get(.size() - 1).isDeleted() ? " - deleted." : ""));
 		}
 	}
 
 	private void buildDetail(final JPanel detailpanelparentfinal ClientPrimaryDataEntity dataentryfinal boolean refreshversion) {
 		this.showmetabutton(dataentry);
 		this.showpermissionbutton(dataentry);
 
 		final List<Stringcolumnlist = new ArrayList<String>();
 
 		for (final EnumDublinCoreElements elem : EnumDublinCoreElements.values()) {
 			try {
 				final String dataName = elem.toString();
 				columnlist.add(dataName);
 			} catch (final UnsupportedOperationException e) {
 				ErrorDialog.showError(e);
 			}
 		}
 
 		final Object[] columnNames = columnlist.toArray(new String[0]);
 
 		final int ilen = columnNames.length;
 
 		int columnlen = ilen / 2;
 
 		if (columnlen * 2 < ilen) {
 			columnlen++;
 		}
 
 		if (!this.) {
 			this..setBackground(new Color(238, 238, 238));
 
 			this. = new LailapsJXTaskPane();
 			this..setBackground(new Color(238, 238, 238));
 
 			this..setName("Metadata Information");
 			String metaabstract;
 			try {
 				metaabstract = dataentry.getMetaData().toString();
 				if (metaabstract.length() > .) {
 					metaabstract = metaabstract.substring(0, .) + "...";
 				}
 				this..setTitle("Metadata : " + metaabstract);
 			} catch (final RemoteException e1) {
 				ErrorDialog.showError(e1);
 			}
 
 			if (!this..isCollapsed()) {
 			}
 
 			this..setLayout(new MigLayout("""[80][50%][80][50%]""[]0"));
 
 			for (int i = 0; i < columnleni++) {
 				final JLabel label1 = new JLinkLabel(columnNames[i * 2].toString() + ":".);
 				label1.setToolTipText("<html>" + MetaDescription.getDescription(columnNames[i * 2].toString()) + "</html>");
 				this..add(label1"cell 0 " + i + " 1 1");
 
 				final JTextField text1 = new JTextField();
 				this..add(text1"cell 1 " + i + " 1 1,growx");
 				this..put(columnNames[i * 2].toString(), text1);
 
 				if (i * 2 + 1 < columnNames.length) {
 					final JLabel label2 = new JLinkLabel(columnNames[i * 2 + 1].toString() + ":".);
 					label2.setToolTipText("<html>" + MetaDescription.getDescription(columnNames[i * 2 + 1].toString()) + "</html>");
 					this..add(label2"cell 2 " + i + " 1 1");
 
 					final JTextField text2 = new JTextField();
 					this..add(text2"cell 3 " + i + " 1 1,growx");
 					this..put(columnNames[i * 2 + 1].toString(), text2);
 				}
 
 			}
 			try {
 				versions = dataentry.getVersions();
 				if (versions != null) {
 					final ClientPrimaryDataEntityVersion[] versionarray = versions.toArray(new ClientPrimaryDataEntityVersion[0]);
 					// versionpanel.setBackground(new Color(238,238,238));
 					this.buidversionpanel(this.versionarray);
 
 				}
 
 			} catch (final RemoteException e) {
 				ErrorDialog.showError(e);
 			}
 			detailpanelparent.add(new JScrollPane(this.), .);
 
 			this. = true;
 		}
 		String metaabstract;
 		try {
 			metaabstract = dataentry.getMetaData().toString();
 			if (metaabstract.length() > .) {
 				metaabstract = metaabstract.substring(0, .) + "...";
 			}
 			this..setTitle("Metadata : " + metaabstract);
 		} catch (final RemoteException e1) {
 			ErrorDialog.showError(e1);
 		}
 		// bind event to ui
 		MetaData filemetadata;
 		try {
 			if (this..containsKey(dataentry.getPath())) {
 				filemetadata = this.getEntityVersionMetaData(dataentrythis..get(dataentry.getPath()));
 			} else {
 				filemetadata = dataentry.getCurrentVersion().getMetaData();
 			}
 			for (final EnumDublinCoreElements elem : EnumDublinCoreElements.values()) {
 				final String dataName = elem.toString();
 				try {
 					final UntypedData data = filemetadata.getElementValue(elem);
 
 					if (this..containsKey(dataName)) {
 						final MetadataViewer viewer = ViewerContainer.getViewer(EnumDublinCoreElements.valueOf(dataName));
 						if (viewer != null) {
 							for (final MouseListener al : this..get(dataName).getMouseListeners()) {
 								this..get(dataName).removeMouseListener(al);
 							}
 							this..get(dataName).addMouseListener(new MouseAdapter() {
 								public void mouseClicked(final MouseEvent e) {
 									if (e.getClickCount() == 2) {
 										viewer.setValue(data);
 										viewer.setTitle(dataName);
 										viewer.showOpenDialog();
 									}
 								}
 							});
 							continue;
 						}
 						this..get(dataName).setEditable(false);
 					}
 				} catch (final MetaDataException e) {
 					ErrorDialog.showError(e);
 				}
 			}
 		} catch (final RemoteException e1) {
 			ErrorDialog.showError(e1);
 		}
 		// bind value to ui
 
 		try {
 			if (this..containsKey(dataentry.getPath())) {
 				filemetadata = this.getEntityVersionMetaData(dataentrythis..get(dataentry.getPath()));
 			} else {
 				filemetadata = dataentry.getCurrentVersion().getMetaData();
 			}
 
 			for (final EnumDublinCoreElements elem : EnumDublinCoreElements.values()) {
 				final String dataName = elem.toString();
 				try {
 					final UntypedData data = filemetadata.getElementValue(elem);
 					final String value = data.toString();
 					if (this..containsKey(dataName)) {
 						this..get(dataName).setText(value);
 						this..get(dataName).setCaretPosition(0);
 						if (value.trim().length() > 0) {
 							this..get(dataName).setToolTipText(this.formattooltips(value));
 						}
 					}
 				} catch (final MetaDataException e) {
 					ErrorDialog.showError(e);
 				}
 			}
 		} catch (final RemoteException e1) {
 			ErrorDialog.showError(e1);
 		}
 
 		this. = dataentry;
 
 		if (refreshversion) {
 			try {
 				versions = dataentry.getVersions();
 				if (versions != null) {
 					final ClientPrimaryDataEntityVersion[] versionarray = versions.toArray(new ClientPrimaryDataEntityVersion[0]);
 					this.buidversionpanel(this.versionarray);
 				}
 
 			} catch (final RemoteException e) {
 				ErrorDialog.showError(e);
 			}
 		}
 	}
 
 	private EdalTableModel buildtable(final List<ClientPrimaryDataEntitydirlist) {
 		this..clear();
 		this. = 0;
 		this. = 0;
 
 		final List<Stringcolumnlist = new ArrayList<String>();
 		columnlist.add("TITLE");
 
 		for (final EnumDublinCoreElements elem : EnumDublinCoreElements.values()) {
 			final String dataName = elem.toString();
 			if (this..contains(dataName)) {
 				columnlist.add(dataName);
 			}
 		}
 
 		final Object[] columnNames = columnlist.toArray(new String[0]);
 
 		final List<List<String>> datalist = new ArrayList<List<String>>();
 
 		if (dirlist != null) {
 			Collections.sort(dirlist);
 			for (final ClientPrimaryDataEntity dataentry : dirlist) {
 				try {
 					try {
 						dataentry.getCurrentVersion();
 					} catch (final Exception e) {
 						continue;
 					}
 					if (dataentry.getCurrentVersion().isDeleted()) {
 						continue;
 					}
 				} catch (final RemoteException e1) {
 					ErrorDialog.showError(e1);
 				}
 
 					try {
 						if (!dataentry.isDirectory() && (this. == null || this..accept((ClientPrimaryDataFiledataentry))) {
 							final List<Stringrowlist = new ArrayList<String>();
 
 							rowlist.add(dataentry.getName());
 
 							final MetaData filemetadata = dataentry.getCurrentVersion().getMetaData();
 							for (final EnumDublinCoreElements elem : EnumDublinCoreElements.values()) {
 								final String dataName = elem.toString();
 								try {
 									if (this..contains(dataName)) {
 										if ("DATE".equals(dataName)) {
 											String tvalue = null;
 											final DateEvents tdataevents = (DateEventsfilemetadata.getElementValue(elem);
 											final Set<EdalDatedataset = tdataevents.getSet();
 											for (final EdalDate edaldate : dataset) {
 												if ("UPDATED".equals(edaldate.getEvent())) {
 													tvalue = edaldate.toString();
 													break;
 												}
 											}
 											if (tvalue == null) {
 												for (final EdalDate edaldate : dataset) {
 													if ("CREATED".equals(edaldate.getEvent())) {
 														tvalue = edaldate.toString();
 														break;
 													}
 												}
 											}
 											rowlist.add(tvalue);
 										} else {
 											final String value = filemetadata.getElementValue(elem).toString();
 											if (value != null && value.length() > .) {
 												final int itemprow = datalist.size() + 1;
 												final int itempcol = rowlist.size() + 1;
 												this..put(itemprow + "," + itempcolvalue);
 												rowlist.add(value.substring(0, .) + "...");
 											} else {
 												rowlist.add(value);
 											}
 										}
 
 									}
 								} catch (final MetaDataException e) {
 									ErrorDialog.showError(e);
 								}
 							}
 
 							datalist.add(rowlist);
 
 							this..add(dataentry);
 						} else if (dataentry.isDirectory()) {
 							final List<Stringrowlist = new ArrayList<String>();
 
 							rowlist.add(dataentry.getName());
 
 							final MetaData filemetadata = dataentry.getCurrentVersion().getMetaData();
 							for (final EnumDublinCoreElements elem : EnumDublinCoreElements.values()) {
 								final String dataName = elem.toString();
 								try {
 									if (this..contains(dataName)) {
 										if ("DATE".equals(dataName)) {
 											String tvalue = null;
 											final DateEvents tdataevents = (DateEventsfilemetadata.getElementValue(elem);
 											final Set<EdalDatedataset = tdataevents.getSet();
 											for (final EdalDate edaldate : dataset) {
 												if ("UPDATED".equals(edaldate.getEvent())) {
 													tvalue = edaldate.toString();
 													break;
 												}
 											}
 											if (tvalue == null) {
 												for (final EdalDate edaldate : dataset) {
 													if ("CREATED".equals(edaldate.getEvent())) {
 														tvalue = edaldate.toString();
 														break;
 													}
 												}
 											}
 											rowlist.add(tvalue);
 										} else {
 											final String value = filemetadata.getElementValue(elem).toString();
 											if (value != null && value.length() > .) {
 												final int itemprow = datalist.size() + 1;
 												final int itempcol = rowlist.size() + 1;
 												this..put(itemprow + "," + itempcolvalue);
 												rowlist.add(value.substring(0, .) + "...");
 											} else {
 												rowlist.add(value);
 											}
 										}
 
 									}
 								} catch (final MetaDataException e) {
 									ErrorDialog.showError(e);
 								}
 							}
 
 							datalist.add(rowlist);
 
 							this..add(dataentry);
 						}
 					} catch (final RemoteException e) {
 						ErrorDialog.showError(e);
 					}
 					try {
 						if (dataentry.isDirectory()) {
 							final List<Stringrowlist = new ArrayList<String>();
 
 							rowlist.add(dataentry.getName());
 
 							final MetaData filemetadata = dataentry.getCurrentVersion().getMetaData();
 							for (final EnumDublinCoreElements elem : EnumDublinCoreElements.values()) {
 								final String dataName = elem.toString();
 								try {
 									if (this..contains(dataName)) {
 										if ("DATE".equals(dataName)) {
 											String tvalue = null;
 											final DateEvents tdataevents = (DateEventsfilemetadata.getElementValue(elem);
 											final Set<EdalDatedataset = tdataevents.getSet();
 											for (final EdalDate edaldate : dataset) {
 												if ("UPDATED".equals(edaldate.getEvent())) {
 													tvalue = edaldate.toString();
 													break;
 												}
 											}
 											if (tvalue == null) {
 												for (final EdalDate edaldate : dataset) {
 													if ("CREATED".equals(edaldate.getEvent())) {
 														tvalue = edaldate.toString();
 														break;
 													}
 												}
 											}
 											rowlist.add(tvalue);
 										} else {
 											final String value = filemetadata.getElementValue(elem).toString();
 											if (value != null && value.length() > .) {
 												final int itemprow = datalist.size() + 1;
 												final int itempcol = rowlist.size() + 1;
 												this..put(itemprow + "," + itempcolvalue);
 												rowlist.add(value.substring(0, .) + "...");
 											} else {
 												rowlist.add(value);
 											}
 										}
 
 									}
 								} catch (final MetaDataException e) {
 									ErrorDialog.showError(e);
 								}
 							}
 
 							datalist.add(rowlist);
 
 							this..add(dataentry);
 						}
 					} catch (final RemoteException e) {
 						ErrorDialog.showError(e);
 					}
 				} else if (this. == .) {
 					try {
 						if (!dataentry.isDirectory() && (this. == null || this..accept((ClientPrimaryDataFiledataentry))) {
 							final List<Stringrowlist = new ArrayList<String>();
 
 							rowlist.add(dataentry.getName());
 
 							final MetaData filemetadata = dataentry.getCurrentVersion().getMetaData();
 							for (final EnumDublinCoreElements elem : EnumDublinCoreElements.values()) {
 								try {
 									final String dataName = elem.toString();
 									if (this..contains(dataName)) {
 										final String value = filemetadata.getElementValue(elem).toString();
 										if ("DATE".equals(dataName)) {
 											String tvalue = null;
 											final DateEvents tdataevents = (DateEventsfilemetadata.getElementValue(elem);
 											final Set<EdalDatedataset = tdataevents.getSet();
 											for (final EdalDate edaldate : dataset) {
 												if ("UPDATED".equals(edaldate.getEvent())) {
 													tvalue = edaldate.toString();
 													break;
 												}
 											}
 											if (tvalue == null) {
 												for (final EdalDate edaldate : dataset) {
 													if ("CREATED".equals(edaldate.getEvent())) {
 														tvalue = edaldate.toString();
 														break;
 													}
 												}
 											}
 											rowlist.add(tvalue);
 										} else {
 											if (value != null && value.length() > .) {
 												final int itemprow = datalist.size() + 1;
 												final int itempcol = rowlist.size() + 1;
 												this..put(itemprow + "," + itempcolvalue);
 												rowlist.add(value.substring(0, .) + "...");
 											} else {
 												rowlist.add(value);
 											}
 										}
 									}
 								} catch (final MetaDataException e) {
 									ErrorDialog.showError(e);
 								}
 							}
 
 							datalist.add(rowlist);
 
 							this..add(dataentry);
 						}
 					} catch (final RemoteException e) {
 						ErrorDialog.showError(e);
 					}
 				}
 			}
 		}
 
 		final Object[][] rowData = new Object[datalist.size()][columnNames.length];
 		for (int i = 0; i < datalist.size(); i++) {
 			final List<Stringrowlist = datalist.get(i);
 			for (int j = 0; j < rowlist.size(); j++) {
 				rowData[i][j] = rowlist.get(j);
 			}
 		}
 
 		return new EdalTableModel(rowDatacolumnNames);
 
 	}
 
 	private void changemetadata(final ClientPrimaryDataEntity dataentryfinal Map<EnumDublinCoreElementsUntypedDatametadatavaluefinal boolean refreshversion) {
 		if (metadatavalue != null) {
 			try {
 				final MetaData fileMetaData = dataentry.getMetaData().clone();
				final Iterator<Map.Entry<EnumDublinCoreElementsUntypedData>> iter = metadatavalue.entrySet().iterator();
				while (iter.hasNext()) {
					final Map.Entry<EnumDublinCoreElementsUntypedDataentry = iter.next();
					final EnumDublinCoreElements key = entry.getKey();
					final UntypedData val = entry.getValue();
					fileMetaData.setElementValue(keyval);
				dataentry.setMetaData(fileMetaData);
				this.buildDetail(this.dataentryrefreshversion);
catch (final Exception re) {
				ErrorDialog.showError(re);