Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   *  Copyright (c) 2011 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 GNU Lesser Public License v2.1
   *  which accompanies this distribution, and is available at
   *  http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
   *
   *  Contributors:
   *      Leibniz Institute of Plant Genetics and Crop Plant Research (IPK), Gatersleben, Germany - initial API and implementation
  */
 package de.ipk_gatersleben.bit.bi.edal.rmi.client.gui;
 
 import java.util.List;
 import java.util.Map;
 
 
PermissionDialog provides a mechanism for the user to manage the permissions of EDAL File System.

The following code pops up a PermissionDialog for the user's directory

 PermissionDialog permission = new PermissionDialog(directory, client);
 permission.showOpenDialog();
 

Author(s):
Jinbo Chen
Version:
1.0
 
 public class PermissionDialog extends JDialog implements ItemListener {
 	private static final long serialVersionUID = 1L;
 	private int dialogwidth = 750;
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;
 
 	private static final String DEFAULT_SOURCE_CHOICE_LABEL = "Available Permissions";
 	private static final String DEFAULT_DEST_CHOICE_LABEL = "Assigned Permissions";
 	private static final String ADD_BUTTON_LABEL = "Add >>";
 	private static final String REMOVE_BUTTON_LABEL = "<< Remove";
 	private static final Insets EMPTY_INSETS = new Insets(0, 0, 0, 0);
 
 
 	private int returnvalue;
 	private JButton savebtn;
 
	private JPanel detialpanel = new JPanel();
	private JList sourceList;
	private JList destList;
	private JLabel destLabel;
	private List<Methodsmethods = new ArrayList<Methods>();
	private List<Stringuserprincipals = new ArrayList<String>();
	private List<Stringusers = new ArrayList<String>();
	private List<Stringprincipals = new ArrayList<String>();
Constructs a PermissionDialog that is initialized with dataentry as the EDAL dataentry, and client as the rmi client datamanager. If any of the parameters are null this method will not initialize.

Parameters:
dataentry the EDAL dataentry
client the rmi client datamanager
		this. = client;
		this. = dataentry;
		setTitle("Permissions Information");
		JPanel contents = (JPanelgetContentPane();
		contents.setLayout(new BorderLayout());
		JPanel userselectpanel = new JPanel();
		JLabel principallabel = new JLabel("Principals at:",
		userselectpanel.add(principallabel);
		userselectpanel.add();
		JButton applyButton = new JButton();
		userselectpanel.add(applyButton);
		JButton addButton = new JButton();
		userselectpanel.add(addButton);
		JPanel permissioneditpanel = new JPanel();
		initpermissionpanel(permissioneditpanel);
		.add(userselectpanel.);
		.add(permissioneditpanel.);
		// contents.add(createbuttonpanel(), BorderLayout.SOUTH);
		this.setSize(new Dimension(, (int) ( * 0.618)));
		this.setResizable(false);
		}
	}
	private void inituserprincipalcombox() {
		for (String str : ) {
		}
		}
	}
	private void inituserprincipallist() {
		Map<PrincipalList<Methods>> permissionmap;
		try {
			permissionmap = .getPermissions();
			if (permissionmap != null) {
				Iterator it = permissionmap.entrySet().iterator();
				while (it.hasNext()) {
							.next();
					Principal key = entry.getKey();
				}
			}
catch (RemoteException e) {
			JOptionPane.showMessageDialog(
					null,
					"Call remote Edal server function exception:"
e.getMessage(), "EdalFileChooser",
			JOptionPane.showMessageDialog(null,
					"Call Edal server function exception:" + e.getMessage(),
					"EdalFileChooser".);
		}
	}
	private void initpermissionpanel(JPanel permissioneditpanel) {
		permissioneditpanel.setBorder(BorderFactory.createEtchedBorder());
		permissioneditpanel.setLayout(new GridBagLayout());
		permissioneditpanel.add(sourceLabelnew GridBagConstraints(0, 0, 1, 1,
				, 0, 0));
		JScrollPane sourcepane = new JScrollPane();
		sourcepane.setPreferredSize(new Dimension(220, 100));
		permissioneditpanel.add(sourcepane,
				new GridBagConstraints(0, 1, 1, 5, .5, 1.0,
						, 0, 0));
		JButton addButton = new JButton();
		addButton.setPreferredSize(new Dimension(110, 30));
		permissioneditpanel.add(addButtonnew GridBagConstraints(1, 2, 1, 2,
				, 0, 0));
		addButton.addActionListener(new AddListener());
		permissioneditpanel.add(new GridBagConstraints(1, 4, 1,
				, 0, 0));
		permissioneditpanel.add(new GridBagConstraints(2, 0, 1, 1,
				, 0, 0));
		JScrollPane destpane = new JScrollPane();
		destpane.setPreferredSize(new Dimension(220, 100));
		permissioneditpanel.add(destpane,
				new GridBagConstraints(2, 1, 1, 5, .5, 1.0,
						, 0, 0));
	}
	public int showOpenDialog() {
		setModal(true);
		return ;
	}
	/*
	 * public JPanel createbuttonpanel() { savebtn = new JButton(okAction);
	 * 
	 * JPanel buttonPane = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 5));
	 * buttonPane.add(savebtn);
	 * 
	 * return buttonPane; }
	 */
	private void fillListModel(SortedListModel modelListModel newValues) {
		int size = newValues.getSize();
		for (int i = 0; i < sizei++) {
			model.add(newValues.getElementAt(i));
		}
	}
	private void fillListModel(SortedListModel modelObject newValues[]) {
		model.addAll(newValues);
	}
	private void addDestinationElements(Object newValue[]) {
	}
	private void addSourceElements(ListModel newValue) {
	}
	private void addSourceElements(Object newValue[]) {
	}
	private void addSourceElement(Object newValue) {
	}
	private void addDestinationElement(Object newValue) {
		.add(newValue);
	}
	private void clearSourceListModel() {
	}
	private void clearDestinationListModel() {
	}
	private void clearSourceSelected() {
		for (int i = selected.length - 1; i >= 0; --i) {
		}
	}
	private void clearDestinationSelected() {
		for (int i = selected.length - 1; i >= 0; --i) {
		}
	}
	private class AddListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
		}
	}
	private class RemoveListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
		}
	}
	private void loadconstants() {
		try {
			if ( != null) {
				for (GrantableMethods.Methods m : commonskeysets) {
				}
					for (GrantableMethods.Methods m : keysets) {
					}
else {
					for (GrantableMethods.Methods m : keysets) {
					}
				}
			}
catch (RemoteException e) {
			JOptionPane.showMessageDialog(
					null,
					"Call remote Edal server function exception:"
e.getMessage(), "EdalFileChooser",
		}
	}
	public void itemStateChanged(ItemEvent e) {
		}
	}
			String usernameString principalname) {
		Map<PrincipalList<Methods>> permissionmap;
		try {
			permissionmap = dataentry.getPermissions();
			if (permissionmap != null) {
				Iterator it = permissionmap.entrySet().iterator();
				while (it.hasNext()) {
							.next();
					Principal key = entry.getKey();
					List<Methodsvalue = entry.getValue();
					if (key.getName().equals(username)
							&& key.getClass().getName().equals(principalname)) {
						for (Methods method : value) {
							.add(method);
						}
					}
				}
			}
			List<Methodsallavailablenoselectedmethods = new ArrayList<Methods>();
			for (Methods method : ) {
				if (!.contains(method)) {
					allavailablenoselectedmethods.add(method);
				}
			}
			addSourceElements(allavailablenoselectedmethods
					.toArray(new Methods[0]));
catch (RemoteException e) {
			JOptionPane.showMessageDialog(
					null,
					"Call remote Edal server function exception:"
e.getMessage(), "EdalFileChooser",
			JOptionPane.showMessageDialog(null,
					"Call Edal server function exception:" + e.getMessage(),
					"EdalFileChooser".);
		}
	}
	private Action okAction = new AbstractAction("Ok") {
		private static final long serialVersionUID = 1L;
		public void actionPerformed(ActionEvent e) {
		}
	};
	private Action addnewAction = new AbstractAction("Add NewUser") {
		private static final long serialVersionUID = 1L;
		public void actionPerformed(ActionEvent e) {
			int returnval = permission.showOpenDialog();
				// fresh
			}
		}
	};
	private Action applyAction = new AbstractAction("Apply") {
		private static final long serialVersionUID = 1L;
		public void actionPerformed(ActionEvent e) {
			// get principal
			String currentuser = 
			String currentprincipalname = .get(
			;
			Principal currentprincipal = PrincipalUtil.getInstance(
					currentprincipalnamecurrentuser);
			if (currentprincipal != null) {
				List destinationlist = new ArrayList();
				List sourcelist = new ArrayList();
				// first delete all the permissions
				int souresize = .getSize();
				for (int i = 0; i < souresizei++) {
					try {
						boolean isin = PrincipalUtil.checkPermission(,
								currentprincipalnamecurrentuser,
						if (isin) {
							.revokePermission(currentprincipal,
						}
catch (RemoteException ex) {
						JOptionPane.showMessageDialog(null,
								"Call remote Edal server function exception:"
ex.getMessage(), "EdalFileChooser",
						// we should move the method to destincationlist
						destinationlist.add(.getElementAt(i));
catch (Exception ex) {
						JOptionPane.showMessageDialog(
								null,
								"Call Edal server function exception:"
ex.getMessage(), "EdalFileChooser",
						// we should move the method to destincationlist
						destinationlist.add(.getElementAt(i));
					}
				}
				// grant permissions to user
				int destsize = .getSize();
				for (int i = 0; i < destsizei++) {
					try {
						boolean isin = PrincipalUtil.checkPermission(,
								currentprincipalnamecurrentuser,
						if (!isin) {
									currentprincipal,
											i).toString()));
						}
catch (RemoteException ex) {
						JOptionPane.showMessageDialog(null,
								"Call remote Edal server function exception:"
ex.getMessage(), "EdalFileChooser",
						// we should move the method to sourcelist
catch (Exception ex) {
						JOptionPane.showMessageDialog(
								null,
								"Call Edal server function exception:"
ex.getMessage(), "EdalFileChooser",
						// we should move the method to sourcelist
					}
				}
				String msg = "Grant permissions finish!";
				if (destinationlist.size() > 0) {
					msg += "some methods:";
					for (Object obj : destinationlist) {
						msg += obj.toString();
						msg += ",";
					}
					msg = msg.substring(0, msg.length() - 1);
					msg += " can't be revokePermission!";
				}
				if (sourcelist.size() > 0) {
					msg += "some methods:";
					for (Object obj : sourcelist) {
						msg += obj.toString();
						msg += ",";
					}
					msg = msg.substring(0, msg.length() - 1);
					msg += " can't be grantPermission!";
				}
				JOptionPane.showMessageDialog(nullmsg"EdalFileChooser",
			}
		}
	};
		return new WindowAdapter() {
			public void windowClosing(final WindowEvent we) {
			}
		};
	}
	public SortedListModel() {
		 = new TreeSet();
	}
	public int getSize() {
		return .size();
	}
	public Object getElementAt(int index) {
		return .toArray()[index];
	}
	public void add(Object element) {
		if (.add(element)) {
		}
	}
	public void addAll(Object elements[]) {
		Collection c = Arrays.asList(elements);
	}
	public void clear() {
	}
	public boolean contains(Object element) {
		return .contains(element);
	}
	public Object firstElement() {
		return .first();
	}
	public Iterator iterator() {
		return .iterator();
	}
	public Object lastElement() {
		return .last();
	}
	public boolean removeElement(Object element) {
		boolean removed = .remove(element);
		if (removed) {
		}
		return removed;
	}