Skip to content

Instantly share code, notes, and snippets.

@rhulha
Created March 30, 2017 19:21
Show Gist options
  • Save rhulha/c83fe05b6a18d813e53d0df64c853324 to your computer and use it in GitHub Desktop.
Save rhulha/c83fe05b6a18d813e53d0df64c853324 to your computer and use it in GitHub Desktop.
package net.raysforge.raycommander;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JList;
import net.raysforge.easyswing.EasyList;
import net.raysforge.easyswing.EasySplitPane;
import net.raysforge.easyswing.EasySwing;
public class RayCommander implements ActionListener {
File leftParent, rightParent;
private EasyList<String> leftFilesList;
private EasyList<String> rightFilesList;
private EasySwing es;
public RayCommander() {
es = new EasySwing("RayCommander", 1024, 768);
es.addToolBarItem("Left Up", "upL", this);
es.addToolBarItem("Move from left to right", "moveLR", this);
es.addToolBarItem("Right Up", "upR", this);
EasySplitPane esp = es.setSplitPaneAsMainContent(true, 1024 / 2);
leftFilesList = new EasyList<>();
rightFilesList = new EasyList<>();
leftFilesList.addActionListener(this);
rightFilesList.addActionListener(this);
leftParent = rightParent = File.listRoots()[0];
es.getStatusLabel().setText(leftParent + " --- " + rightParent);
setFileList(leftFilesList, leftParent);
setFileList(rightFilesList, rightParent);
esp.setLeft(leftFilesList);
esp.setRight(rightFilesList);
es.show();
}
private void setFileList(EasyList<String> list, File f) {
File[] listFiles = f.listFiles();
list.removeAll();
for (File file : listFiles) {
list.addElement(file.getName());
}
}
public static void main(String[] args) {
new RayCommander();
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("upL")) {
setFileList(leftFilesList, leftParent = leftParent.getParentFile());
}
if (e.getActionCommand().equals("upR")) {
setFileList(rightFilesList, rightParent = rightParent.getParentFile());
}
if (e.getActionCommand().equals("moveLR")) {
String selectedValue = leftFilesList.getSelectedValue();
if(selectedValue==null)
return;
File moveMe = new File(leftParent, selectedValue);
moveMe.renameTo(new File(rightParent, selectedValue));
System.out.println("move: " + moveMe + " ---> " + new File(rightParent, selectedValue));
setFileList(leftFilesList, leftParent);
setFileList(rightFilesList, rightParent);
}
if (e.getActionCommand().equals("ENTER")) {
@SuppressWarnings("unchecked")
JList<String> sourceList = (JList<String>) e.getSource();
String selectedValue = sourceList.getSelectedValue();
if (sourceList == leftFilesList.getJList()) {
setFileList(leftFilesList, leftParent = new File(leftParent, selectedValue));
} else if (sourceList == rightFilesList.getJList()) {
setFileList(rightFilesList, rightParent = new File(rightParent, selectedValue));
} else {
System.out.println("ERROR");
}
}
es.getStatusLabel().setText(leftParent + " --- " + rightParent);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment