Dépôt officiel du code source de l'ERP OpenConcerto
Blame | Last modification | View Log | RSS feed
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 2011-2019 OpenConcerto, by ILM Informatique. All rights reserved.
*
* The contents of this file are subject to the terms of the GNU General Public License Version 3
* only ("GPL"). You may not use this file except in compliance with the License. You can obtain a
* copy of the License at http://www.gnu.org/licenses/gpl-3.0.html See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each file.
*/
package org.openconcerto.sql.users.rights;
import org.openconcerto.sql.model.SQLRowAccessor;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.util.List;
import net.minidev.json.JSONArray;
import net.minidev.json.JSONObject;
public class UserRightCopySelection implements Transferable {
// JSOnArray[ID Right, object,hasRight]
public final JSONObject rights;
public final static DataFlavor rightsFlavor = new DataFlavor(JSONObject.class, "RightsDataFlavor");
public UserRightCopySelection(List<? extends SQLRowAccessor> list) {
this.rights = new JSONObject();
for (SQLRowAccessor sqlRowValues : list) {
JSONArray array = new JSONArray();
array.add(sqlRowValues.getForeignIDNumber("ID_RIGHT"));
array.add(sqlRowValues.getString("OBJECT"));
array.add(sqlRowValues.getBoolean("HAVE_RIGHT"));
this.rights.put(String.valueOf(sqlRowValues.getID()), array);
}
}
@Override
public DataFlavor[] getTransferDataFlavors() {
DataFlavor[] ret = { rightsFlavor };
return ret;
}
@Override
public boolean isDataFlavorSupported(DataFlavor flavor) {
return rightsFlavor.equals(flavor);
}
@Override
public synchronized Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException {
if (isDataFlavorSupported(flavor)) {
return this.rights;
} else {
throw new UnsupportedFlavorException(rightsFlavor);
}
}
}