Cyberduck Mountain Duck CLI

Changeset 6505


Ignore:
Timestamp:
Aug 2, 2010 3:30:49 PM (10 years ago)
Author:
dkocher
Message:

Fix #3213.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/ch/cyberduck/ui/cocoa/InfoController.java

    r6419 r6505  
    3131import ch.cyberduck.ui.cocoa.foundation.*;
    3232import ch.cyberduck.ui.cocoa.threading.BrowserBackgroundAction;
     33import ch.cyberduck.ui.cocoa.threading.WindowMainAction;
    3334import ch.cyberduck.ui.cocoa.util.HyperlinkAttributedStringFactory;
    3435
     
    290291                public String getActivity() {
    291292                    return MessageFormat.format(Locale.localizedString("Writing metadata of {0}", "Status"),
    292                             files.get(0).getName());
     293                            this.toString(files));
    293294                }
    294295            });
     
    669670                public String getActivity() {
    670671                    return MessageFormat.format(Locale.localizedString("Changing permission of {0} to {1}", "Status"),
    671                             files.get(0).getName(), acl);
     672                            this.toString(files), acl);
    672673                }
    673674            });
     
    980981                public String getActivity() {
    981982                    return MessageFormat.format(Locale.localizedString("Writing metadata of {0}", "Status"),
    982                             files.get(0).getName());
     983                            this.toString(files));
    983984                }
    984985            });
     
    15141515                public String getActivity() {
    15151516                    return MessageFormat.format(Locale.localizedString("Getting permission of {0}", "Status"),
    1516                             files.get(0).getName());
     1517                            this.toString(files));
    15171518                }
    15181519            });
     
    15721573        if(this.toggleSizeSettings(false)) {
    15731574            controller.background(new BrowserBackgroundAction(controller) {
    1574                 double size = 0;
     1575                long size = 0;
    15751576
    15761577                public void run() {
     
    15871588                @Override
    15881589                public void cleanup() {
    1589                     StringBuilder formatted = new StringBuilder(Status.getSizeAsString(size));
    1590                     if(size > -1) {
    1591                         formatted.append(" (").append(NumberFormat.getInstance().format(size)).append(" bytes)");
    1592                     }
    1593                     sizeField.setAttributedStringValue(NSAttributedString.attributedStringWithAttributes(
    1594                             formatted.toString(),
    1595                             TRUNCATE_MIDDLE_ATTRIBUTES));
     1590                    updateSize(size);
    15961591                    toggleSizeSettings(true);
    15971592                }
     
    16001595                public String getActivity() {
    16011596                    return MessageFormat.format(Locale.localizedString("Getting size of {0}", "Status"),
    1602                             files.get(0).getName());
     1597                            this.toString(files));
    16031598                }
    16041599            });
    16051600        }
    16061601    }
     1602
     1603    private void updateSize(long size) {
     1604        StringBuilder formatted = new StringBuilder(Status.getSizeAsString(size));
     1605        if(size > -1) {
     1606            formatted.append(" (").append(NumberFormat.getInstance().format(size)).append(" bytes)");
     1607        }
     1608        sizeField.setAttributedStringValue(NSAttributedString.attributedStringWithAttributes(
     1609                formatted.toString(),
     1610                TRUNCATE_MIDDLE_ATTRIBUTES));
     1611    }
     1612
    16071613
    16081614    private void initChecksum() {
     
    16381644                    public String getActivity() {
    16391645                        return MessageFormat.format(Locale.localizedString("Compute MD5 hash of {0}", "Status"),
    1640                                 files.get(0).getName());
     1646                                this.toString(files));
    16411647                    }
    16421648                });
     
    16651671            logging = ((S3Session) session).isLoggingSupported();
    16661672            versioning = ((S3Session) session).isVersioningSupported();
    1667             storageclass = ((S3Session)session).getSupportedStorageClasses().size() > 1;
     1673            storageclass = ((S3Session) session).getSupportedStorageClasses().size() > 1;
    16681674        }
    16691675        bucketVersioningButton.setEnabled(stop && enable && versioning);
     
    17671773                public String getActivity() {
    17681774                    return MessageFormat.format(Locale.localizedString("Reading metadata of {0}", "Status"),
    1769                             files.get(0).getName());
     1775                            this.toString(files));
    17701776                }
    17711777            });
     
    18661872                public String getActivity() {
    18671873                    return MessageFormat.format(Locale.localizedString("Reading metadata of {0}", "Status"),
    1868                             files.get(0).getName());
     1874                            this.toString(files));
    18691875                }
    18701876            });
     
    19041910                public String getActivity() {
    19051911                    return MessageFormat.format(Locale.localizedString("Getting permission of {0}", "Status"),
    1906                             files.get(0).getName());
     1912                            this.toString(files));
    19071913                }
    19081914            });
     
    20082014     */
    20092015    private void changePermissions(final Permission permission, final boolean recursive) {
    2010         // Write altered permissions to the server
    20112016        if(this.togglePermissionSettings(false)) {
    2012             // send the changes to the remote host
    20132017            controller.background(new BrowserBackgroundAction(controller) {
    20142018                public void run() {
     
    20322036                public String getActivity() {
    20332037                    return MessageFormat.format(Locale.localizedString("Changing permission of {0} to {1}", "Status"),
    2034                             files.get(0).getName(), permission);
     2038                            this.toString(files), permission);
    20352039                }
    20362040            });
     
    21432147                public String getActivity() {
    21442148                    return MessageFormat.format(Locale.localizedString("Writing metadata of {0}", "Status"),
    2145                             files.get(0).getName());
     2149                            this.toString(files));
    21462150                }
    21472151            });
     
    22212225                public String getActivity() {
    22222226                    return MessageFormat.format(Locale.localizedString("Reading metadata of {0}", "Status"),
    2223                             files.get(0).getName());
     2227                            this.toString(files));
    22242228                }
    22252229            });
     
    22302234    public void calculateSizeButtonClicked(final ID sender) {
    22312235        if(this.toggleSizeSettings(false)) {
    2232             // send the changes to the remote host
    22332236            controller.background(new BrowserBackgroundAction(controller) {
     2237                private long total;
     2238
    22342239                public void run() {
    22352240                    for(Path next : files) {
    2236                         this.calculateSize(next);
     2241                        next.attributes().setSize(this.calculateSize(next));
    22372242                        if(!controller.isConnected()) {
    22382243                            break;
     
    22482253
    22492254                /**
    2250                  * Calculates recursively the size of this path
     2255                 * Calculates recursively the size of this path if a directory
    22512256                 *
    22522257                 * @return The size of the file or the sum of all containing files if a directory
    22532258                 * @warn Potentially lengthy operation
    22542259                 */
    2255                 private double calculateSize(AbstractPath p) {
     2260                private long calculateSize(final AbstractPath p) {
     2261                    long size = 0;
    22562262                    if(p.attributes().isDirectory()) {
    2257                         long size = 0;
    22582263                        for(AbstractPath next : p.childs()) {
    22592264                            size += this.calculateSize(next);
    22602265                        }
    2261                         ((PathAttributes) p.attributes()).setSize(size);
    2262                     }
    2263                     return p.attributes().getSize();
     2266                    }
     2267                    else if(p.attributes().isFile()) {
     2268                        size += p.attributes().getSize();
     2269                        total += size;
     2270                        final long update = total;
     2271                        invoke(new WindowMainAction(InfoController.this) {
     2272                            public void run() {
     2273                                updateSize(update);
     2274                            }
     2275                        });
     2276                    }
     2277                    return size;
    22642278                }
    22652279
    22662280                @Override
    22672281                public String getActivity() {
    2268                     return MessageFormat.format(Locale.localizedString("Getting size of {0}", "Status"),
    2269                             files.get(0).getName());
     2282                    return MessageFormat.format(Locale.localizedString("Getting size of {0}", "Status"), this.toString(files));
    22702283                }
    22712284            });
Note: See TracChangeset for help on using the changeset viewer.
swiss made software