home *** CD-ROM | disk | FTP | other *** search
- package com.sfs.iavazip;
-
- import com.sfs.awt.TexturePanel;
- import com.sfs.awt.treeview.Folder;
- import com.sfs.awt.treeview.Item;
- import com.sfs.awt.treeview.ItemSorter;
- import com.sfs.awt.treeview.TreeView;
- import com.sfs.awt.treeview.TreeViewEventObject;
- import com.sfs.awt.treeview.TreeViewException;
- import com.sfs.awt.treeview.TreeViewListener;
- import com.sfs.debug.Debug;
- import com.sfs.os.OS;
- import com.sfs.util.SortableVector;
- import com.sfs.util.WildCard;
- import java.awt.AWTEvent;
- import java.awt.BorderLayout;
- import java.awt.Button;
- import java.awt.Checkbox;
- import java.awt.CheckboxGroup;
- import java.awt.Choice;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dialog;
- import java.awt.FlowLayout;
- import java.awt.Font;
- import java.awt.Frame;
- import java.awt.GridLayout;
- import java.awt.Label;
- import java.awt.Panel;
- import java.awt.Rectangle;
- import java.awt.TextField;
- import java.awt.Window;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.ItemEvent;
- import java.awt.event.ItemListener;
- import java.awt.event.WindowEvent;
- import java.io.File;
- import java.util.Vector;
-
- public class ImportDialog extends Dialog implements TreeViewListener, ActionListener, ItemListener {
- // $FF: renamed from: tw com.sfs.awt.treeview.TreeView
- TreeView field_0;
- public Frame frame;
- boolean busy = true;
- boolean retCode;
- iavaZip mainApp;
- static Vector Compression = new Vector(10);
- static Vector Action;
- static Vector Method;
- Checkbox recurseSubfolders;
- Checkbox saveExtraFolderInfo;
- Checkbox stripFilenames;
- Choice compression;
- Choice action;
- Choice method;
- static final int METHOD_DEFLATED = 0;
- static final int METHOD_STORED = 1;
- static final int NORMAL_FOLDERHANDLING = 0;
- static final int SAVE_EXTRAFOLDERINFO = 1;
- static final int STRIP_FILENAMES = 2;
- static final int ACTION_IMPORT_AND_REPLACE = 0;
- static final int ACTION_FRESHEN_ARCHIVE = 1;
- static final int ACTION_MOVE = 2;
- static final int ACTION_UPDATE_AND_ADD = 3;
- Label Status;
- TextField Files;
- boolean NO_RECURSE;
- boolean RECURSE = true;
-
- public int getCompression() {
- return this.compression.getSelectedIndex();
- }
-
- protected void processWindowEvent(WindowEvent var1) {
- switch (((AWTEvent)var1).getID()) {
- case 201:
- ((Window)this).dispose();
- this.busy = false;
- return;
- default:
- }
- }
-
- public void itemStateChanged(ItemEvent var1) {
- Checkbox var2;
- if (((String)var1.getItem()).equals("Strip Filenames")) {
- var2 = this.saveExtraFolderInfo;
- } else {
- var2 = this.stripFilenames;
- }
-
- if (var1.getStateChange() == 1) {
- var2.setState(false);
- ((Component)var2).setEnabled(false);
- } else {
- ((Component)var2).setEnabled(true);
- }
- }
-
- public int getFilenameHandling() {
- if (this.saveExtraFolderInfo.getState()) {
- return 1;
- } else {
- return this.stripFilenames.getState() ? 2 : 0;
- }
- }
-
- protected void fillFolder(Folder var1, String var2) throws TreeViewException {
- File var3 = new File(var2);
- if (!var3.canRead()) {
- var1.setOpen(false);
- ((Item)var1).setDisabled(true);
- var1.addItem("temp", (Object)null);
- ((Item)var1).setContent(var2);
- } else {
- this.Status.setText("reading directory ...");
- String[] var4 = var3.list();
-
- for(int var5 = 0; var5 < var4.length; ++var5) {
- File var6 = new File(var2 + System.getProperty("file.separator") + var4[var5]);
- if (var6.isDirectory()) {
- Folder var7 = var1.addFolder(var4[var5], var6.getAbsolutePath());
- var7.addItem("temp", (Object)null);
- } else {
- var1.addItem(var4[var5], var6.getAbsolutePath());
- }
- }
-
- ((Item)var1).setDisabled(false);
- System.gc();
- this.Status.setText("");
- }
- }
-
- public int getMethod() {
- switch (this.method.getSelectedIndex()) {
- case 0:
- return 8;
- default:
- return 0;
- }
- }
-
- public void handleTreeViewEvent(TreeViewEventObject var1) {
- if (var1.getItem() instanceof Folder) {
- Folder var2 = (Folder)var1.getItem();
- if (((Item)var2).getContent() != null) {
- String var3 = (String)((Item)var2).getContent();
- ((Item)var2).setContent((Object)null);
-
- try {
- var2.removeItem("temp");
- this.fillFolder(var2, var3);
- return;
- } catch (TreeViewException var4) {
- }
- }
- }
-
- }
-
- public void actionPerformed(ActionEvent var1) {
- String var2 = var1.getActionCommand();
- if (var2.equals("Cancel")) {
- ((Window)this).dispose();
- this.busy = false;
- } else if (var2.equals("Help")) {
- InfoDialog var3 = new InfoDialog(this.mainApp, "help/import.html");
- var3.doModal();
- ((Window)this).toFront();
- } else {
- if (var2.equals("Import")) {
- this.mainApp.properties.put("Import.saveExtraFolderInfo", this.saveExtraFolderInfo.getState() ? "TRUE" : "FALSE");
- this.mainApp.properties.put("Import.stripFilenames", this.stripFilenames.getState() ? "TRUE" : "FALSE");
- this.mainApp.properties.put("Import.recurseSubfolders", this.recurseSubfolders.getState() ? "TRUE" : "FALSE");
- this.mainApp.properties.put("Import.Compression", this.compression.getSelectedItem());
- this.mainApp.properties.put("Import.Action", this.action.getSelectedItem());
- this.mainApp.properties.put("Import.Method", this.method.getSelectedItem());
- this.mainApp.properties.put("Import.Files", this.Files.getText());
- this.retCode = true;
- ((Window)this).dispose();
- this.busy = false;
- }
-
- }
- }
-
- static {
- Compression.addElement("0 None");
- Compression.addElement("1");
- Compression.addElement("2");
- Compression.addElement("3 Super Fast");
- Compression.addElement("4");
- Compression.addElement("5 Fast");
- Compression.addElement("6");
- Compression.addElement("7 Normal");
- Compression.addElement("8");
- Compression.addElement("9 Maximum (slow) ");
- Action = new Vector(4);
- Action.addElement("Import (and Replace)");
- Action.addElement("Freshen Archive");
- Action.addElement("Move");
- Action.addElement("Update (and Add)");
- Method = new Vector(2);
- Method.addElement("DEFLATED");
- Method.addElement("STORED");
- }
-
- public SortableVector getSelection() {
- Item var1 = this.field_0.Root.getCaretItem();
- var1.setSelected(true);
- if (this.field_0.Root.isSelected()) {
- for(int var2 = 0; var2 < this.field_0.Root.size(); ++var2) {
- var1 = this.field_0.Root.getItem(var2);
- if (!(var1 instanceof Folder)) {
- var1.setSelected(true);
- } else if (this.recurseSubfolders.getState()) {
- var1.setSelected(true);
- }
- }
-
- this.field_0.Root.setSelected(false);
- }
-
- Vector var9 = this.field_0.Root.Rows;
- SortableVector var3 = new SortableVector(1, new ItemSorter());
- WildCard var4 = new WildCard(this.Files.getText(), 1);
-
- for(int var5 = 0; var5 < var9.size(); ++var5) {
- var1 = (Item)var9.elementAt(var5);
- if (!var1.isDisabled()) {
- if (this.recurseSubfolders.getState()) {
- if (var1.isSelected()) {
- if (var1 instanceof Folder) {
- this.fillFolderComplete((Folder)var1, this.RECURSE);
- } else if (var4.isAccepted(var1.getName())) {
- var3.add(var1);
- }
- }
- } else {
- int var6 = var1.getSelectedDistance();
- if (var6 == 0 && var1 instanceof Folder) {
- this.fillFolderComplete((Folder)var1, this.NO_RECURSE);
- } else if (var6 > -1 && var6 < 2 && !(var1 instanceof Folder) && (var6 != 1 || var4.isAccepted(var1.getName()))) {
- var3.add(var1);
- }
- }
- }
- }
-
- for(int var10 = 0; var10 < ((Vector)var3).size(); ++var10) {
- Debug.Info(((Item)((Vector)var3).elementAt(var10)).getName());
- }
-
- return var3;
- }
-
- ImportDialog(iavaZip var1) {
- super(var1, "Import", true);
- this.mainApp = var1;
- ((Container)this).setLayout(new BorderLayout());
- this.field_0 = new TreeView(var1, "", (Object)null);
- this.field_0.setSorter(new ItemSorter());
- this.field_0.setSize(200, 150);
- this.field_0.setBackground(Color.lightGray);
- ((Container)this).add("Center", this.field_0);
- 1 var2 = new 1(this);
- ((Container)var2).setLayout(new BorderLayout());
- Panel var3 = new Panel();
- ((Container)var3).setLayout(new GridLayout(13, 1));
- Label var4;
- ((Container)var3).add(var4 = new Label("Options"));
- Font var5 = ((Component)this).getFont();
- ((Component)var4).setFont(new Font(var5.getName(), 1, var5.getSize()));
- ((Container)var3).add(this.recurseSubfolders = new Checkbox("Recurse Subfolders", (CheckboxGroup)null, true));
- String var6 = var1.properties.getProperty("Import.recurseSubfolders");
- if (var6 != null && !Boolean.valueOf(var6)) {
- this.recurseSubfolders.setState(false);
- }
-
- ((Container)var3).add(this.saveExtraFolderInfo = new Checkbox("Save Extra Folder Info", (CheckboxGroup)null, false));
- this.saveExtraFolderInfo.addItemListener(this);
- var6 = var1.properties.getProperty("Import.saveExtraFolderInfo");
- if (var6 != null && Boolean.valueOf(var6)) {
- this.saveExtraFolderInfo.setEnabled(true);
- this.saveExtraFolderInfo.setState(true);
- }
-
- ((Container)var3).add(this.stripFilenames = new Checkbox("Strip Filenames", (CheckboxGroup)null, false));
- this.stripFilenames.addItemListener(this);
- var6 = var1.properties.getProperty("Import.stripFilenames");
- if (var6 != null && Boolean.valueOf(var6)) {
- this.stripFilenames.setState(true);
- this.stripFilenames.setEnabled(true);
- if (this.saveExtraFolderInfo.getState()) {
- this.saveExtraFolderInfo.setState(false);
- this.saveExtraFolderInfo.setEnabled(false);
- }
- }
-
- ((Container)var3).add(new Label("from selected folders:"));
- var6 = var1.properties.getProperty("Import.Files");
- if (var6 == null) {
- var6 = "*";
- var1.properties.put("Import.Files", var6);
- }
-
- ((Container)var3).add(this.Files = new TextField(var6));
- ((Container)var3).add(var4 = new Label("Action"));
- ((Component)var4).setFont(new Font(var5.getName(), 1, var5.getSize()));
- this.action = new Choice();
-
- for(int var7 = 0; var7 < Action.size(); ++var7) {
- this.action.addItem((String)Action.elementAt(var7));
- }
-
- ((Container)var3).add(this.action);
- var6 = var1.properties.getProperty("Import.Action");
- if (var6 != null && Action.contains(var6)) {
- this.action.select(var6);
- } else {
- var1.properties.put("Import.Action", Action.elementAt(0));
- this.action.select(0);
- }
-
- ((Container)var3).add(new Label("Method"));
- this.method = new Choice();
-
- for(int var21 = 0; var21 < Method.size(); ++var21) {
- this.method.addItem((String)Method.elementAt(var21));
- }
-
- ((Container)var3).add(this.method);
- var6 = var1.properties.getProperty("Import.Method");
- if (var6 != null && Method.contains(var6)) {
- this.method.select(var6);
- } else {
- var1.properties.put("Import.Method", Method.elementAt(0));
- this.method.select(0);
- }
-
- ((Container)var3).add(new Label("Compression"));
- this.compression = new Choice();
-
- for(int var22 = 0; var22 < Compression.size(); ++var22) {
- this.compression.addItem((String)Compression.elementAt(var22));
- }
-
- ((Container)var3).add(this.compression);
- var6 = var1.properties.getProperty("Import.Compression");
- if (var6 != null && Compression.contains(var6)) {
- this.compression.select(var6);
- } else {
- var1.properties.put("Import.Compression", Compression.elementAt(0));
- this.compression.select(0);
- }
-
- ((Container)var3).add(this.Status = new Label("", 0));
- ((Container)var2).add("North", var3);
- ((Container)this).add("West", var2);
- TexturePanel var23 = new TexturePanel(this, var1.backgroundTexture);
- ((Container)var23).setLayout(new FlowLayout());
- Button var8 = new Button("Import");
- ((Container)var23).add(var8);
- var8.addActionListener(this);
- var8 = new Button("Cancel");
- ((Container)var23).add(var8);
- var8.addActionListener(this);
- var8 = new Button("Help");
- ((Container)var23).add(var8);
- var8.addActionListener(this);
- ((Container)this).add("South", var23);
-
- try {
- if (OS.hasDrives()) {
- Vector var9 = OS.getDrives();
-
- for(int var10 = 0; var10 < var9.size(); ++var10) {
- var6 = (String)var9.elementAt(var10);
- Folder var11 = this.field_0.addFolder(var6, var6);
- var11.addItem("temp", (Object)null);
- }
- } else {
- this.field_0.Root.setName(System.getProperty("file.separator"));
- this.fillFolder(this.field_0.Root, System.getProperty("file.separator"));
- }
- } catch (TreeViewException var12) {
- }
-
- ((Dialog)this).setTitle("Import");
- ((Dialog)this).setResizable(true);
- this.field_0.addTreeViewListener(this);
- ((Component)this).enableEvents(64L);
- }
-
- protected void fillFolderComplete(Folder var1, boolean var2) {
- if (((Item)var1).getContent() != null) {
- String var10 = (String)((Item)var1).getContent();
- File var11 = new File(var10);
- if (var11.canRead()) {
- try {
- ((Item)var1).setContent((Object)null);
- var1.removeItem("temp");
- String[] var5 = var11.list();
-
- for(int var6 = 0; var6 < var5.length; ++var6) {
- File var7 = new File(var10 + System.getProperty("file.separator") + var5[var6]);
- if (var2 && var7.isDirectory()) {
- Folder var8 = var1.addFolder(var5[var6], var7.getAbsolutePath());
- var8.addItem("temp", (Object)null);
- this.fillFolderComplete(var8, this.RECURSE);
- } else if (!var7.isDirectory()) {
- var1.addItem(var5[var6], var7.getAbsolutePath());
- }
- }
-
- ((Item)var1).setDisabled(false);
- System.gc();
- } catch (TreeViewException var9) {
- }
- }
- } else {
- if (var2) {
- for(int var3 = 0; var3 < var1.Root.size(); ++var3) {
- Item var4 = var1.getItem(var3);
- if (var4 instanceof Folder) {
- this.fillFolderComplete((Folder)var4, this.RECURSE);
- }
- }
- }
-
- }
- }
-
- public boolean doModal() {
- ((Window)this).pack();
- Rectangle var1 = ((Component)this).getParent().getBounds();
- Rectangle var2 = ((Component)this).getBounds();
- var2.x = var1.x + (var1.width - var2.width) / 2;
- var2.y = var1.y + (var1.height - var2.height) / 2;
- ((Component)this).setBounds(var2);
- ((Dialog)this).show();
- if (this.retCode) {
- ((Component)this).setVisible(false);
- processImport var3 = new processImport(this);
- return ((processDlg)var3).doModal();
- } else {
- return this.retCode;
- }
- }
-
- public int getAction() {
- return this.action.getSelectedIndex();
- }
- }
-