Mercurial > hg > LGServer
diff src/main/java/de/mpiwg/web/BranchEditor.java @ 0:7682c04c63a8
First commit of the source code!
author | "jurzua <jurzua@mpiwg-berlin.mpg.de>" |
---|---|
date | Tue, 10 Mar 2015 14:50:41 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/mpiwg/web/BranchEditor.java Tue Mar 10 14:50:41 2015 +0100 @@ -0,0 +1,187 @@ +package de.mpiwg.web; + +import java.util.ArrayList; +import java.util.List; + +import javax.faces.event.ActionEvent; + +import org.apache.commons.lang.SerializationUtils; +import org.apache.log4j.Logger; + +import de.mpiwg.gazetteer.bo.LGBranch; +import de.mpiwg.gazetteer.bo.LGFile; +import de.mpiwg.gazetteer.dataverse.DataverseUtils; +import de.mpiwg.gazetteer.dataverse.bo.VDCUser; +import de.mpiwg.gazetteer.utils.DataProvider; +import de.mpiwg.gazetteer.utils.FileManager; +import de.mpiwg.gazetteer.utils.SelectableObject; + +public class BranchEditor extends AbstractBean{ + + + private static Logger logger = Logger.getLogger(BranchEditor.class); + + private LGBranch currentBranch; + private LGFile currentLastFile; + private List<LGFile> allFiles; + private String text; + private List<VDCUser> suggestionUserList; + private List<SelectableObject<VDCUser>> contributors; + + public void loadBranch(Long branchId){ + LGBranch branch = DataProvider.getInstance().getBranch(branchId); + this.loadBranch(branch); + } + + public void loadBranch(LGBranch branch){ + logger.info("Loading Branch: " + branch.toString()); + this.reset(); + if(branch != null && branch.isPersistent()){ + + try { + this.currentBranch = (LGBranch)branch.clone(); + this.currentLastFile = DataProvider.getInstance().getFile(branch.getCurrentLastFileId()); + this.allFiles = DataProvider.getInstance().getAllFiles(branch.getId()); + this.text = FileManager.getFile(this.currentLastFile); + this.contributors = new ArrayList<SelectableObject<VDCUser>>(); + for(Long userId : this.currentBranch.getContributorsList()){ + VDCUser user = DataverseUtils.getUser(userId); + if(user != null){ + this.contributors.add(new SelectableObject<VDCUser>(user)); + } + + } + //for(this.currentBranch.getContributorsList()) + } catch (Exception e) { + internalError(e); + } + + logger.info("allFiles.size=" + allFiles.size()); + } + } + + public void reset(){ + this.currentBranch = null; + this.currentLastFile = null; + this.allFiles = null; + } + + public void listenerShowContributorsDialog(ActionEvent event){ + this.suggestionUserList = new ArrayList<VDCUser>(); + try { + for(VDCUser user : DataverseUtils.getAllUsers()){ + if(!currentBranch.hasContributor(user.getId())){ + this.suggestionUserList.add(user); + } + } + } catch (Exception e) { + internalError(e); + } + + + } + + public void listenerCloseContributorsDialog(ActionEvent event){ + this.suggestionUserList = null; + } + + public void listenerUpdateBranch(ActionEvent event){ + this.saveBranch0(); + } + + public void listenerAddContributor(ActionEvent event){ + VDCUser user = (VDCUser)getRequestBean("contributor"); + if(user != null){ + this.suggestionUserList = null; + this.currentBranch.addContributor(user.getId()); + } + + this.saveBranch0(); + } + + public void listenerRemoveContributor(ActionEvent event){ + List<VDCUser> toDelete = new ArrayList<VDCUser>(); + for(SelectableObject<VDCUser> so : new ArrayList<SelectableObject<VDCUser>>(this.contributors)){ + if(so.isSelected()){ + toDelete.add(so.getObj()); + this.contributors.remove(so); + } + } + + for(VDCUser user : toDelete){ + this.currentBranch.removeContributor(user.getId()); + } + + this.saveBranch0(); + + } + + private void saveBranch0(){ + try { + DataProvider.getInstance().updateBranch(currentBranch); + this.loadBranch(currentBranch); + addMsg("The branch has been updated!"); + } catch (Exception e) { + internalError(e); + } + } + + public void listenerSaveText(ActionEvent event){ + try { + LGFile newFile = DataProvider.getInstance().saveFile(currentBranch.getId(), this.text, getSessionBean().getUser().getId(), this.currentLastFile.getId()); + LGBranch branch = DataProvider.getInstance().getBranch(newFile.getBranchId()); + this.loadBranch(branch); + addMsg("New File create " + newFile.getId()); + } catch (Exception e) { + internalError(e); + } + } + + public LGBranch getCurrentBranch() { + return currentBranch; + } + + public void setCurrentBranch(LGBranch currentBranch) { + this.currentBranch = currentBranch; + } + + public LGFile getCurrentLastFile() { + return currentLastFile; + } + + public void setCurrentLastFile(LGFile currentLastFile) { + this.currentLastFile = currentLastFile; + } + + public List<LGFile> getAllFiles() { + return allFiles; + } + + public void setAllFiles(List<LGFile> allFiles) { + this.allFiles = allFiles; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public List<VDCUser> getSuggestionUserList() { + return suggestionUserList; + } + + public void setSuggestionUserList(List<VDCUser> suggestionUserList) { + this.suggestionUserList = suggestionUserList; + } + + public List<SelectableObject<VDCUser>> getContributors() { + return contributors; + } + + public void setContributors(List<SelectableObject<VDCUser>> contributors) { + this.contributors = contributors; + } +}