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.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 = 780;
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 JPanel detialpanel = new JPanel();
	private JList<StringdestList;
	private JLabel destLabel;
	private List<Stringmethods = new ArrayList<String>();
	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;
		try {
			setTitle("Permissions Information:"+dataentry.getPath());
catch (RemoteException e) {
			ErrorDialog.showError(e);
		}
		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.);
		this.setSize(new Dimension(, (int) ( * 0.618)));
		this.setMinimumSize(new Dimension(, (int) ( * 0.618)));
		this.setResizable(false);
		}
	}
		JButton savebtn = new JButton();
		JButton cancelbtn = new JButton();
		JPanel buttonPane = new JPanel(new FlowLayout(., 5, 5));
		buttonPane.add(savebtn);
		buttonPane.add(cancelbtn);
		return buttonPane;
	}
	private Action okAction = new AbstractAction("Ok") {
		private static final long serialVersionUID = 1L;
		public void actionPerformed(ActionEvent e) {
			{
				{
					sb.append(str);
					sb.append(",");
				}
				if(sb.length()>0)
				{
					sb.deleteCharAt(sb.length()-1);
				}
				int dialogButton = .;
				int dialogResult = JOptionPane.showConfirmDialog(null"you have Principals:"+sb.toString()+" to grant permissions, do you want to grant permissions?".,dialogButton);
				if(dialogResult == .){
					return;
				}
			}
		}
	};
	private Action cancelAction = new AbstractAction("Cancel") {
		private static final long serialVersionUID = 1L;
		public void actionPerformed(ActionEvent e) {
		}
	};
	private void inituserprincipalcombox() {
		for (String str : ) {
		}
		}
	}
	private void inituserprincipallist(Principal principal) {
		if(principal!=null)
		{
			.add(principal.getName());
			.add(principal.getName() + ":" + principal.getClass().getSimpleName());
			.add(principal.getName() + ":" + principal.getClass().getSimpleName());
		}
		Map<PrincipalList<Methods>> permissionmap;
		try {
			permissionmap = .getPermissions();
			if (permissionmap != null) {
				Iterator<Map.Entry<PrincipalList<Methods>>> it = permissionmap.entrySet().iterator();
				while (it.hasNext()) {
					Principal key = entry.getKey();
				}
			}
catch (RemoteException e) {
			ErrorDialog.showError(e);
			ErrorDialog.showError(e);
		}
	}
	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 ;
	}
	private void fillListModel(SortedListModel modelListModel<StringnewValues) {
		int size = newValues.getSize();
		for (int i = 0; i < sizei++) {
			model.add(newValues.getElementAt(i));
		}
	}
	private void fillListModel(SortedListModel modelString[] newValues) {
		model.addAll(newValues);
	}
	public void addDestinationElements(String[] newValues) {
	}
	public void addSourceElements(ListModel<StringnewValue) {
	}
	public void addSourceElements(String newValue[]) {
	}
	private void addSourceElement(String newValue) {
	}
	private void addDestinationElement(String 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) {
			ErrorDialog.showError(e);
		}
	}
	public void itemStateChanged(ItemEvent e) {
		}
	}
			String usernameString principalname) {
		Map<PrincipalList<Methods>> permissionmap;
		try {
			permissionmap = dataentry.getPermissions();
			if (permissionmap != null) {
				Iterator<Map.Entry<PrincipalList<Methods>>> 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.toString());
						}
					}
				}
			}
			List<Stringallavailablenoselectedmethods = new ArrayList<String>();
			for (Methods method : ) {
				if (!.contains(method.toString())) {
					allavailablenoselectedmethods.add(method.toString());
				}
			}
			addSourceElements(allavailablenoselectedmethods.toArray(new String[0]));
catch (RemoteException e) {
			ErrorDialog.showError(e);
			ErrorDialog.showError(e);
		}
	}
	private Action addnewAction = new AbstractAction("Add NewUser") {
		private static final long serialVersionUID = 1L;
		public void actionPerformed(ActionEvent e) {
			int returnval = permission.showOpenDialog();
			if (returnval == . && permission.getPrincipal()!=null) {
				// 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<Stringdestinationlist = new ArrayList<String>();
				List<Stringsourcelist = new ArrayList<String>();
				// 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) {
						ErrorDialog.showError(ex);
						// we should move the method to destincationlist
						destinationlist.add(.getElementAt(i));
					}
					{
						// we should move the method to destincationlist
						destinationlist.add(.getElementAt(i));
					}
					catch (Exception ex) {
						ErrorDialog.showError(ex);
						// 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) {
						ErrorDialog.showError(ex);
						// we should move the method to sourcelist
					}
					{
						// we should move the method to sourcelist
					}
					catch (Exception ex) {
						ErrorDialog.showError(ex);
						// 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",	.);
				.remove(currentprincipal.getName() + ":" + currentprincipal.getClass().getSimpleName());				
			}
		}
	};
		return new WindowAdapter() {
			public void windowClosing(final WindowEvent we) {
			}
		};
	}
	private static final long serialVersionUID = 1L;
	public SortedListModel() {
		 = new TreeSet<String>();
	}
	public int getSize() {
		return .size();
	}
	public String getElementAt(int index) {
		return .toArray(new String[0])[index];
	}
	public void add(String element) {
		if (.add(element)) {
		}
	}
	public void addAll(String elements[]) {
		Collection<Stringc = Arrays.asList(elements);
	}
	public void clear() {
	}
	public boolean contains(Object element) {
		return .contains(element);
	}
	public Object firstElement() {
		return .first();
	}
	public Iterator<Stringiterator() {
		return .iterator();
	}
	public Object lastElement() {
		return .last();
	}
	public boolean removeElement(Object element) {
		boolean removed = .remove(element);
		if (removed) {
		}
		return removed;
	}