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.os.OS;
- import java.awt.AWTEvent;
- import java.awt.BorderLayout;
- import java.awt.Button;
- import java.awt.Checkbox;
- import java.awt.CheckboxGroup;
- 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.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.WindowEvent;
- import java.io.File;
- import java.io.FilenameFilter;
- import java.util.Vector;
-
- public class ExtractDialog extends Dialog implements FilenameFilter, TreeViewListener, ActionListener {
- // $FF: renamed from: tw com.sfs.awt.treeview.TreeView
- TreeView field_0;
- CheckboxGroup cbg;
- Checkbox overWrite;
- Checkbox useFoldernames;
- TextField Files;
- TextField destinationFolder;
- public iavaZip mainApp;
- boolean busy = true;
- boolean retCode;
- Panel main;
- Panel lastPanel;
- confirmNewPath confirm;
- mkdirFailed failed;
-
- ExtractDialog(iavaZip var1) {
- super(var1, "Extract", true);
- this.mainApp = var1;
- ((Container)this).setLayout(new BorderLayout());
- this.main = new Panel();
- this.main.setLayout(new BorderLayout());
- Container var2 = new 1(this);
- var2.setLayout(new GridLayout(2, 1));
- Label var3;
- var2.add(var3 = new Label("Destination folder:"));
- Font var4 = ((Component)this).getFont();
- Font var17;
- ((Component)var3).setFont(var17 = new Font(var4.getName(), 1, var4.getSize()));
- var2.add(this.destinationFolder = new TextField());
- this.main.add("North", var2);
- this.confirm = new confirmNewPath(this, var17);
- this.failed = new mkdirFailed(this, var17);
- this.field_0 = new TreeView(var1, System.getProperty("file.separator"), (Object)null);
- this.field_0.setSorter(new ItemSorter());
- this.field_0.setSize(200, 150);
- this.field_0.setAllowSelection(false);
- this.field_0.setBackground(Color.lightGray);
- this.main.add("Center", this.field_0);
- this.cbg = new CheckboxGroup();
- var2 = new 2(this);
- var2.setLayout(new BorderLayout());
- Panel var5 = new Panel();
- ((Container)var5).setLayout(new GridLayout(8, 1));
- ((Container)var5).add(var3 = new Label("Files"));
- ((Component)var3).setFont(var17);
- ((Container)var5).add(new Checkbox("selected File(s)", this.cbg, true));
- Checkbox var6;
- ((Container)var5).add(var6 = new Checkbox("all Files", this.cbg, false));
- ((Container)var5).add(new Label("from selected folders:"));
- String var7 = var1.properties.getProperty("Extract.allFiles");
- if (var7 != null && Boolean.valueOf(var7)) {
- this.cbg.setSelectedCheckbox(var6);
- }
-
- ((Container)var5).add(this.Files = new TextField());
- var7 = var1.properties.getProperty("Extract.Files");
- this.Files.setText(var7 != null ? var7 : "*");
- ((Container)var5).add(var3 = new Label("Options"));
- ((Component)var3).setFont(var17);
- ((Container)var5).add(this.overWrite = new Checkbox("Overwrite existing files", (CheckboxGroup)null, false));
- var7 = var1.properties.getProperty("Extract.overWrite");
- if (var7 != null && Boolean.valueOf(var7)) {
- this.overWrite.setState(true);
- }
-
- ((Container)var5).add(this.useFoldernames = new Checkbox("Use folder names", (CheckboxGroup)null, true));
- var7 = var1.properties.getProperty("Extract.useFoldernames");
- if (var7 != null && !Boolean.valueOf(var7)) {
- this.useFoldernames.setState(false);
- }
-
- var2.add("North", var5);
- this.main.add("West", var2);
- TexturePanel var8 = new TexturePanel(this, var1.backgroundTexture);
- ((Container)var8).setLayout(new FlowLayout());
- Button var9 = new Button("Extract");
- ((Container)var8).add(var9);
- var9.addActionListener(this);
- var9 = new Button("Cancel");
- ((Container)var8).add(var9);
- var9.addActionListener(this);
- var9 = new Button("Help");
- ((Container)var8).add(var9);
- var9.addActionListener(this);
- this.main.add("South", var8);
- ((Container)this).add("Center", this.lastPanel = this.main);
-
- try {
- if (OS.hasDrives()) {
- Vector var10 = OS.getDrives();
-
- for(int var11 = 0; var11 < var10.size(); ++var11) {
- var7 = (String)var10.elementAt(var11);
- Folder var12 = this.field_0.addFolder(var7, var7);
- var12.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 var13) {
- }
-
- this.field_0.addTreeViewListener(this);
- ((Dialog)this).setResizable(true);
- ((Component)this).enableEvents(64L);
- }
-
- protected void processWindowEvent(WindowEvent var1) {
- switch (((AWTEvent)var1).getID()) {
- case 201:
- ((Window)this).dispose();
- this.busy = false;
- return;
- default:
- }
- }
-
- 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 {
- String[] var4 = var3.list(this);
-
- for(int var5 = 0; var5 < var4.length; ++var5) {
- Folder var6 = var1.addFolder(var4[var5], var2 + System.getProperty("file.separator") + var4[var5]);
- var6.addItem("temp", (Object)null);
- }
-
- ((Item)var1).setDisabled(false);
- }
- }
-
- public boolean accept(File var1, String var2) {
- File var3 = new File(var1, var2);
- return var3.isDirectory();
- }
-
- public void handleTreeViewEvent(TreeViewEventObject var1) {
- 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);
- } catch (TreeViewException var4) {
- }
- }
-
- String var5 = var1.getItem().getAbsoluteName();
- if (OS.hasDrives()) {
- if (var5.length() > 2) {
- var5 = var5.substring(2);
- } else {
- var5 = var5.substring(1);
- }
- } else {
- var5 = var5.substring(1);
- var5 = var5.replace('\\', File.separatorChar);
- }
-
- if (var1.getItem().isDisabled()) {
- var5 = "";
- }
-
- this.destinationFolder.setText(var5);
- }
-
- public void actionPerformed(ActionEvent var1) {
- String var2 = var1.getActionCommand();
- if (var2.equals("Cancel")) {
- ((Window)this).dispose();
- this.busy = false;
- } else if (var2.equals("Create folder")) {
- File var3 = new File(this.destinationFolder.getText());
- if (!var3.mkdirs()) {
- ((Container)this).remove(this.lastPanel);
- this.failed.setPath(this.destinationFolder.getText());
- ((Container)this).add("Center", this.lastPanel = this.failed);
- ((Window)this).pack();
- } else {
- var2 = "Extract";
- }
- }
-
- if (var2.equals("<< Back")) {
- ((Container)this).remove(this.lastPanel);
- ((Container)this).add("Center", this.lastPanel = this.main);
- ((Window)this).pack();
- }
-
- if (var2.equals("Help")) {
- InfoDialog var5 = new InfoDialog(this.mainApp, "help/extracting.html");
- var5.doModal();
- ((Window)this).toFront();
- }
-
- if (var2.equals("Extract")) {
- this.mainApp.properties.put("Extract.overWrite", this.overWrite.getState() ? "TRUE" : "FALSE");
- this.mainApp.properties.put("Extract.useFoldernames", this.useFoldernames.getState() ? "TRUE" : "FALSE");
- Checkbox var6 = this.cbg.getSelectedCheckbox();
- this.mainApp.properties.put("Extract.allFiles", var6.getLabel().equals("selected File(s)") ? "FALSE" : "TRUE");
- this.mainApp.properties.put("Extract.Destination", this.destinationFolder.getText());
- this.mainApp.properties.put("Extract.Files", this.Files.getText());
- File var4 = new File(this.destinationFolder.getText());
- if (var4.exists()) {
- this.retCode = true;
- this.busy = false;
- ((Window)this).dispose();
- } else {
- ((Dialog)this).setTitle("Confirm destination folder");
- ((Container)this).remove(this.main);
- ((Container)this).add("Center", this.lastPanel = this.confirm);
- this.confirm.setPath(this.destinationFolder.getText());
- ((Window)this).pack();
- }
- }
- }
-
- 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);
- processExtract var3 = new processExtract(this);
- return ((processDlg)var3).doModal();
- } else {
- return this.retCode;
- }
- }
- }
-