Search in sources :

Example 1 with CoreRunningListener

use of com.biglybt.core.CoreRunningListener in project BiglyBT by BiglySoftware.

the class SBC_TagDiscovery method startScan.

private void startScan() {
    try {
        mon_scansRemaining.enter();
        if (scansRemaining > 0) {
            return;
        }
    } finally {
        mon_scansRemaining.exit();
    }
    CoreFactory.addCoreRunningListener(new CoreRunningListener() {

        @Override
        public void coreRunning(Core core) {
            GlobalManager gm = core.getGlobalManager();
            try {
                try {
                    mon_scansRemaining.enter();
                    scansRemaining = 0;
                } finally {
                    mon_scansRemaining.exit();
                }
                RelatedContentManager rcm = RelatedContentManager.getSingleton();
                List<DownloadManager> dms = gm.getDownloadManagers();
                for (final DownloadManager dm : dms) {
                    if (tv == null) {
                        return;
                    }
                    TOTorrent torrent = dm.getTorrent();
                    if (torrent == null) {
                        continue;
                    }
                    try {
                        final byte[] hash = torrent.getHash();
                        try {
                            mon_scansRemaining.enter();
                            scansRemaining++;
                            if (vitalityImage != null && scansRemaining == 1) {
                                vitalityImage.setVisible(true);
                            }
                            if (soTitle != null) {
                                soTitle.setText(MessageText.getString("tag.discovery.view.heading") + " : Scanning " + scansRemaining);
                            }
                        } finally {
                            mon_scansRemaining.exit();
                        }
                        try {
                            rcm.lookupAttributes(hash, dm.getDownloadState().getNetworks(), new RelatedAttributeLookupListener() {

                                @Override
                                public void tagFound(String tag, String network) {
                                    if (DEBUG) {
                                        System.out.println("Tag Search: Found Tag " + tag + " for " + dm.getDisplayName());
                                    }
                                    if (tv == null) {
                                        return;
                                    }
                                    String key = Base32.encode(hash) + tag;
                                    TagManager tm = TagManagerFactory.getTagManager();
                                    TagType tt_manual = tm.getTagType(TagType.TT_DOWNLOAD_MANUAL);
                                    List<Tag> existingDMTags = tt_manual.getTagsForTaggable(dm);
                                    for (Tag existingTag : existingDMTags) {
                                        if (existingTag.getTagName(true).equalsIgnoreCase(tag)) {
                                            return;
                                        }
                                    }
                                    synchronized (mapTagDiscoveries) {
                                        if (!mapTagDiscoveries.containsKey(key)) {
                                            TagDiscovery tagDiscovery = new TagDiscovery(tag, network, dm.getDisplayName(), hash);
                                            mapTagDiscoveries.put(key, tagDiscovery);
                                            ViewTitleInfoManager.refreshTitleInfo(SBC_TagDiscovery.this);
                                            tv.addDataSource(tagDiscovery);
                                        }
                                    }
                                }

                                @Override
                                public void lookupStart() {
                                    if (DEBUG) {
                                        System.out.println("Tag Search: Start" + " for " + dm.getDisplayName());
                                    }
                                }

                                @Override
                                public void lookupFailed(ContentException error) {
                                    if (DEBUG) {
                                        System.out.println("Tag Search: Failed " + error.getMessage() + " for " + dm.getDisplayName());
                                    }
                                }

                                @Override
                                public void lookupComplete() {
                                    decreaseScansRemaining();
                                    if (DEBUG) {
                                        System.out.println("Tag Search: Complete" + " for " + dm.getDisplayName());
                                    }
                                }
                            });
                        } catch (Throwable e) {
                            // can get here if the scan never gets kicked off (dht unavailable for network etc)
                            decreaseScansRemaining();
                        }
                    } catch (TOTorrentException e) {
                        e.printStackTrace();
                    }
                }
            } catch (ContentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });
}
Also used : RelatedContentManager(com.biglybt.core.content.RelatedContentManager) ContentException(com.biglybt.core.content.ContentException) RelatedAttributeLookupListener(com.biglybt.core.content.RelatedAttributeLookupListener) DownloadManager(com.biglybt.core.download.DownloadManager) TOTorrentException(com.biglybt.core.torrent.TOTorrentException) GlobalManager(com.biglybt.core.global.GlobalManager) TOTorrent(com.biglybt.core.torrent.TOTorrent) CoreRunningListener(com.biglybt.core.CoreRunningListener) List(java.util.List) Core(com.biglybt.core.Core)

Example 2 with CoreRunningListener

use of com.biglybt.core.CoreRunningListener in project BiglyBT by BiglySoftware.

the class ConfigSectionTransfer method configSectionCreate.

@Override
public Composite configSectionCreate(final Composite parent) {
    GridData gridData;
    GridLayout layout;
    Label label;
    Composite cSection = new Composite(parent, SWT.NULL);
    gridData = new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL);
    Utils.setLayoutData(cSection, gridData);
    layout = new GridLayout();
    layout.numColumns = 2;
    layout.marginHeight = 0;
    cSection.setLayout(layout);
    int userMode = COConfigurationManager.getIntParameter("User Mode");
    // store the initial d/l speed so we can do something sensible later
    final int[] manual_max_download_speed = { COConfigurationManager.getIntParameter("Max Download Speed KBs") };
    // max upload speed
    gridData = new GridData();
    label = new Label(cSection, SWT.NULL);
    Utils.setLayoutData(label, gridData);
    Messages.setLanguageText(label, "ConfigView.label.maxuploadspeed");
    gridData = new GridData();
    final IntParameter paramMaxUploadSpeed = new IntParameter(cSection, "Max Upload Speed KBs", 0, Integer.MAX_VALUE);
    paramMaxUploadSpeed.setLayoutData(gridData);
    // max upload speed when seeding
    final Composite cMaxUploadSpeedOptionsArea = new Composite(cSection, SWT.NULL);
    layout = new GridLayout();
    layout.numColumns = 3;
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    cMaxUploadSpeedOptionsArea.setLayout(layout);
    gridData = new GridData();
    gridData.horizontalIndent = 15;
    gridData.horizontalSpan = 2;
    Utils.setLayoutData(cMaxUploadSpeedOptionsArea, gridData);
    ImageLoader imageLoader = ImageLoader.getInstance();
    Image img = imageLoader.getImage("subitem");
    label = new Label(cMaxUploadSpeedOptionsArea, SWT.NULL);
    img.setBackground(label.getBackground());
    gridData = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
    Utils.setLayoutData(label, gridData);
    label.setImage(img);
    gridData = new GridData();
    final BooleanParameter enable_seeding_rate = new BooleanParameter(cMaxUploadSpeedOptionsArea, "enable.seedingonly.upload.rate", "ConfigView.label.maxuploadspeedseeding");
    enable_seeding_rate.setLayoutData(gridData);
    gridData = new GridData();
    final IntParameter paramMaxUploadSpeedSeeding = new IntParameter(cMaxUploadSpeedOptionsArea, "Max Upload Speed Seeding KBs", 0, Integer.MAX_VALUE);
    paramMaxUploadSpeedSeeding.setLayoutData(gridData);
    enable_seeding_rate.setAdditionalActionPerformer(new ChangeSelectionActionPerformer(paramMaxUploadSpeedSeeding.getControl()));
    if (userMode < 2) {
        // wiki link
        Composite cWiki = new Composite(cSection, SWT.COLOR_GRAY);
        gridData = new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL);
        gridData.horizontalSpan = 2;
        Utils.setLayoutData(cWiki, gridData);
        layout = new GridLayout();
        layout.numColumns = 4;
        layout.marginHeight = 0;
        cWiki.setLayout(layout);
        gridData = new GridData();
        gridData.horizontalIndent = 6;
        gridData.horizontalSpan = 2;
        label = new Label(cWiki, SWT.NULL);
        Utils.setLayoutData(label, gridData);
        label.setText(MessageText.getString("Utils.link.visit") + ":");
        gridData = new GridData();
        gridData.horizontalIndent = 10;
        gridData.horizontalSpan = 2;
        new LinkLabel(cWiki, gridData, "ConfigView.section.transfer.speeds.wiki", Constants.URL_WIKI + "w/Good_settings");
    }
    if (userMode > 1) {
        gridData = new GridData();
        label = new Label(cSection, SWT.NULL);
        Utils.setLayoutData(label, gridData);
        Messages.setLanguageText(label, "ConfigView.label.maxuploadswhenbusymin");
        gridData = new GridData();
        new IntParameter(cSection, "max.uploads.when.busy.inc.min.secs", 0, Integer.MAX_VALUE).setLayoutData(gridData);
    }
    // max download speed
    gridData = new GridData();
    label = new Label(cSection, SWT.NULL);
    Utils.setLayoutData(label, gridData);
    Messages.setLanguageText(label, "ConfigView.label.maxdownloadspeed");
    gridData = new GridData();
    final IntParameter paramMaxDownSpeed = new IntParameter(cSection, "Max Download Speed KBs", 0, Integer.MAX_VALUE);
    paramMaxDownSpeed.setLayoutData(gridData);
    // max upload/download limit dependencies
    Listener l = new Listener() {

        @Override
        public void handleEvent(Event event) {
            boolean disableAuto = false;
            boolean disableAutoSeeding = false;
            if (enable_seeding_rate.isSelected()) {
                disableAutoSeeding = event.widget == paramMaxUploadSpeedSeeding.getControl();
                disableAuto = event.widget == paramMaxDownSpeed.getControl() || event.widget == paramMaxUploadSpeed.getControl();
            } else {
                disableAuto = true;
                disableAutoSeeding = true;
            }
            if (disableAuto)
                COConfigurationManager.setParameter(TransferSpeedValidator.AUTO_UPLOAD_ENABLED_CONFIGKEY, false);
            if (disableAutoSeeding)
                COConfigurationManager.setParameter(TransferSpeedValidator.AUTO_UPLOAD_SEEDING_ENABLED_CONFIGKEY, false);
        }
    };
    paramMaxDownSpeed.getControl().addListener(SWT.Selection, l);
    paramMaxUploadSpeed.getControl().addListener(SWT.Selection, l);
    paramMaxUploadSpeedSeeding.getControl().addListener(SWT.Selection, l);
    paramMaxUploadSpeed.addChangeListener(new ParameterChangeAdapter() {

        ParameterChangeAdapter me = this;

        @Override
        public void parameterChanged(Parameter p, boolean internal) {
            CoreWaiterSWT.waitForCoreRunning(new CoreRunningListener() {

                @Override
                public void coreRunning(Core core) {
                    if (paramMaxUploadSpeed.isDisposed()) {
                        paramMaxUploadSpeed.removeChangeListener(me);
                        return;
                    }
                    if (TransferSpeedValidator.isAutoSpeedActive(core.getGlobalManager())) {
                        return;
                    }
                    int up_val = paramMaxUploadSpeed.getValue();
                    int down_val = paramMaxDownSpeed.getValue();
                    if (up_val != 0 && up_val < COConfigurationManager.CONFIG_DEFAULT_MIN_MAX_UPLOAD_SPEED) {
                        if ((down_val == 0) || down_val > (up_val * 2)) {
                            paramMaxDownSpeed.setValue(up_val * 2);
                        }
                    } else {
                        if (down_val != manual_max_download_speed[0]) {
                            paramMaxDownSpeed.setValue(manual_max_download_speed[0]);
                        }
                    }
                }
            });
        }
    });
    paramMaxDownSpeed.addChangeListener(new ParameterChangeAdapter() {

        ParameterChangeAdapter me = this;

        @Override
        public void parameterChanged(Parameter p, boolean internal) {
            CoreWaiterSWT.waitForCoreRunning(new CoreRunningListener() {

                @Override
                public void coreRunning(Core core) {
                    if (paramMaxDownSpeed.isDisposed()) {
                        paramMaxDownSpeed.removeChangeListener(me);
                        return;
                    }
                    if (TransferSpeedValidator.isAutoSpeedActive(core.getGlobalManager())) {
                        return;
                    }
                    int up_val = paramMaxUploadSpeed.getValue();
                    int down_val = paramMaxDownSpeed.getValue();
                    manual_max_download_speed[0] = down_val;
                    if (up_val < COConfigurationManager.CONFIG_DEFAULT_MIN_MAX_UPLOAD_SPEED) {
                        if (up_val != 0 && up_val < (down_val * 2)) {
                            paramMaxUploadSpeed.setValue((down_val + 1) / 2);
                        } else if (down_val == 0) {
                            paramMaxUploadSpeed.setValue(0);
                        }
                    }
                }
            });
        }
    });
    if (userMode > 0) {
        // bias upload to incomplete
        BooleanParameter bias_upload = new BooleanParameter(cSection, "Bias Upload Enable", "ConfigView.label.xfer.bias_up");
        gridData = new GridData();
        gridData.horizontalSpan = 2;
        bias_upload.setLayoutData(gridData);
        final Composite bias_slack_area = new Composite(cSection, SWT.NULL);
        layout = new GridLayout();
        layout.numColumns = 3;
        layout.marginWidth = 0;
        layout.marginHeight = 0;
        bias_slack_area.setLayout(layout);
        gridData = new GridData();
        gridData.horizontalIndent = 15;
        gridData.horizontalSpan = 2;
        Utils.setLayoutData(bias_slack_area, gridData);
        label = new Label(bias_slack_area, SWT.NULL);
        gridData = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
        Utils.setLayoutData(label, gridData);
        label.setImage(img);
        label = new Label(bias_slack_area, SWT.NULL);
        Messages.setLanguageText(label, "ConfigView.label.xfer.bias_slack");
        IntParameter bias_slack = new IntParameter(bias_slack_area, "Bias Upload Slack KBs", 1, Integer.MAX_VALUE);
        final Composite bias_unlimited_area = new Composite(cSection, SWT.NULL);
        layout = new GridLayout();
        layout.numColumns = 2;
        layout.marginWidth = 0;
        layout.marginHeight = 0;
        bias_unlimited_area.setLayout(layout);
        gridData = new GridData();
        gridData.horizontalIndent = 15;
        gridData.horizontalSpan = 2;
        Utils.setLayoutData(bias_unlimited_area, gridData);
        label = new Label(bias_unlimited_area, SWT.NULL);
        gridData = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
        Utils.setLayoutData(label, gridData);
        label.setImage(img);
        BooleanParameter bias_no_limit = new BooleanParameter(bias_unlimited_area, "Bias Upload Handle No Limit", "ConfigView.label.xfer.bias_no_limit");
        bias_upload.setAdditionalActionPerformer(new ChangeSelectionActionPerformer(new Parameter[] { bias_slack, bias_no_limit }));
    }
    if (userMode > 0) {
        // AUTO GROUP
        Group auto_group = new Group(cSection, SWT.NULL);
        Messages.setLanguageText(auto_group, "group.auto");
        GridLayout auto_layout = new GridLayout();
        auto_layout.numColumns = 2;
        auto_group.setLayout(auto_layout);
        gridData = new GridData(GridData.FILL_HORIZONTAL);
        gridData.horizontalSpan = 2;
        Utils.setLayoutData(auto_group, gridData);
        BooleanParameter auto_adjust = new BooleanParameter(auto_group, "Auto Adjust Transfer Defaults", "ConfigView.label.autoadjust");
        gridData = new GridData();
        gridData.horizontalSpan = 2;
        auto_adjust.setLayoutData(gridData);
        // max uploads
        gridData = new GridData();
        label = new Label(auto_group, SWT.NULL);
        Utils.setLayoutData(label, gridData);
        Messages.setLanguageText(label, "ConfigView.label.maxuploads");
        gridData = new GridData();
        IntParameter paramMaxUploads = new IntParameter(auto_group, "Max Uploads", 2, Integer.MAX_VALUE);
        paramMaxUploads.setLayoutData(gridData);
        // max uploads when seeding
        final Composite cMaxUploadsOptionsArea = new Composite(auto_group, SWT.NULL);
        layout = new GridLayout();
        layout.numColumns = 3;
        layout.marginWidth = 0;
        layout.marginHeight = 0;
        cMaxUploadsOptionsArea.setLayout(layout);
        gridData = new GridData();
        gridData.horizontalIndent = 15;
        gridData.horizontalSpan = 2;
        Utils.setLayoutData(cMaxUploadsOptionsArea, gridData);
        label = new Label(cMaxUploadsOptionsArea, SWT.NULL);
        img.setBackground(label.getBackground());
        gridData = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
        Utils.setLayoutData(label, gridData);
        label.setImage(img);
        gridData = new GridData();
        BooleanParameter enable_seeding_uploads = new BooleanParameter(cMaxUploadsOptionsArea, "enable.seedingonly.maxuploads", "ConfigView.label.maxuploadsseeding");
        enable_seeding_uploads.setLayoutData(gridData);
        gridData = new GridData();
        final IntParameter paramMaxUploadsSeeding = new IntParameter(cMaxUploadsOptionsArea, "Max Uploads Seeding", 2, Integer.MAX_VALUE);
        paramMaxUploadsSeeding.setLayoutData(gridData);
        // //
        gridData = new GridData();
        label = new Label(auto_group, SWT.NULL);
        Utils.setLayoutData(label, gridData);
        Messages.setLanguageText(label, "ConfigView.label.max_peers_per_torrent");
        gridData = new GridData();
        IntParameter paramMaxClients = new IntParameter(auto_group, "Max.Peer.Connections.Per.Torrent");
        paramMaxClients.setLayoutData(gridData);
        // ///
        // max peers when seeding
        final Composite cMaxPeersOptionsArea = new Composite(auto_group, SWT.NULL);
        layout = new GridLayout();
        layout.numColumns = 3;
        layout.marginWidth = 0;
        layout.marginHeight = 0;
        cMaxPeersOptionsArea.setLayout(layout);
        gridData = new GridData();
        gridData.horizontalIndent = 15;
        gridData.horizontalSpan = 2;
        Utils.setLayoutData(cMaxPeersOptionsArea, gridData);
        label = new Label(cMaxPeersOptionsArea, SWT.NULL);
        img.setBackground(label.getBackground());
        gridData = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
        Utils.setLayoutData(label, gridData);
        label.setImage(img);
        gridData = new GridData();
        BooleanParameter enable_max_peers_seeding = new BooleanParameter(cMaxPeersOptionsArea, "Max.Peer.Connections.Per.Torrent.When.Seeding.Enable", "ConfigView.label.maxuploadsseeding");
        enable_max_peers_seeding.setLayoutData(gridData);
        gridData = new GridData();
        final IntParameter paramMaxPeersSeeding = new IntParameter(cMaxPeersOptionsArea, "Max.Peer.Connections.Per.Torrent.When.Seeding", 0, Integer.MAX_VALUE);
        paramMaxPeersSeeding.setLayoutData(gridData);
        // ///
        gridData = new GridData();
        label = new Label(auto_group, SWT.NULL);
        Utils.setLayoutData(label, gridData);
        Messages.setLanguageText(label, "ConfigView.label.max_peers_total");
        gridData = new GridData();
        IntParameter paramMaxClientsTotal = new IntParameter(auto_group, "Max.Peer.Connections.Total");
        paramMaxClientsTotal.setLayoutData(gridData);
        gridData = new GridData();
        label = new Label(auto_group, SWT.NULL);
        Utils.setLayoutData(label, gridData);
        Messages.setLanguageText(label, "ConfigView.label.maxseedspertorrent");
        gridData = new GridData();
        IntParameter max_seeds_per_torrent = new IntParameter(auto_group, "Max Seeds Per Torrent");
        max_seeds_per_torrent.setLayoutData(gridData);
        final Parameter[] parameters = { paramMaxUploads, enable_seeding_uploads, paramMaxUploadsSeeding, paramMaxClients, enable_max_peers_seeding, paramMaxPeersSeeding, paramMaxClientsTotal, max_seeds_per_torrent };
        IAdditionalActionPerformer f_enabler = new GenericActionPerformer(new Control[0]) {

            @Override
            public void performAction() {
                boolean auto = COConfigurationManager.getBooleanParameter("Auto Adjust Transfer Defaults");
                for (Parameter p : parameters) {
                    Control[] c = p.getControls();
                    for (Control x : c) {
                        x.setEnabled(!auto);
                    }
                }
                if (!auto) {
                    paramMaxUploadsSeeding.getControl().setEnabled(COConfigurationManager.getBooleanParameter("enable.seedingonly.maxuploads"));
                    paramMaxPeersSeeding.getControl().setEnabled(COConfigurationManager.getBooleanParameter("Max.Peer.Connections.Per.Torrent.When.Seeding.Enable"));
                }
            }
        };
        f_enabler.performAction();
        enable_seeding_uploads.setAdditionalActionPerformer(f_enabler);
        enable_max_peers_seeding.setAdditionalActionPerformer(f_enabler);
        auto_adjust.setAdditionalActionPerformer(f_enabler);
        // NON PUBLIC PEERS GROUP
        Group npp_group = new Group(cSection, SWT.NULL);
        Messages.setLanguageText(npp_group, "label.non.public.peers");
        GridLayout npp_layout = new GridLayout();
        npp_layout.numColumns = 2;
        npp_group.setLayout(npp_layout);
        gridData = new GridData(GridData.FILL_HORIZONTAL);
        gridData.horizontalSpan = 2;
        Utils.setLayoutData(npp_group, gridData);
        label = new Label(npp_group, SWT.NULL);
        Messages.setLanguageText(label, "ConfigView.label.npp.slots");
        IntParameter npp_upload_slots = new IntParameter(npp_group, "Non-Public Peer Extra Slots Per Torrent", 0, Integer.MAX_VALUE);
        label = new Label(npp_group, SWT.NULL);
        Messages.setLanguageText(label, "ConfigView.label.npp.connections");
        IntParameter npp_connections = new IntParameter(npp_group, "Non-Public Peer Extra Connections Per Torrent", 0, Integer.MAX_VALUE);
        // END NON PUBLIC PEERS GROUP
        gridData = new GridData();
        gridData.horizontalSpan = 2;
        BooleanParameter useReqLimiting = new BooleanParameter(cSection, "Use Request Limiting", "ConfigView.label.userequestlimiting");
        useReqLimiting.setLayoutData(gridData);
        gridData = new GridData();
        gridData.horizontalSpan = 2;
        BooleanParameter useReqLimitingPrios = new BooleanParameter(cSection, "Use Request Limiting Priorities", "ConfigView.label.userequestlimitingpriorities");
        useReqLimitingPrios.setLayoutData(gridData);
        useReqLimiting.setAdditionalActionPerformer(new ChangeSelectionActionPerformer(useReqLimitingPrios.getControl()));
        // up limits include protocol
        gridData = new GridData();
        gridData.horizontalSpan = 2;
        BooleanParameter upIncludesProt = new BooleanParameter(cSection, "Up Rate Limits Include Protocol", "ConfigView.label.up.includes.prot");
        upIncludesProt.setLayoutData(gridData);
        // down limits include protocol
        gridData = new GridData();
        gridData.horizontalSpan = 2;
        BooleanParameter downIncludesProt = new BooleanParameter(cSection, "Down Rate Limits Include Protocol", "ConfigView.label.down.includes.prot");
        downIncludesProt.setLayoutData(gridData);
        // same IP
        gridData = new GridData();
        gridData.horizontalSpan = 2;
        BooleanParameter allowSameIP = new BooleanParameter(cSection, "Allow Same IP Peers", "ConfigView.label.allowsameip");
        allowSameIP.setLayoutData(gridData);
        // lazy bit field
        gridData = new GridData();
        gridData.horizontalSpan = 2;
        BooleanParameter lazybf = new BooleanParameter(cSection, "Use Lazy Bitfield", "ConfigView.label.lazybitfield");
        lazybf.setLayoutData(gridData);
        if (userMode > 1) {
            gridData = new GridData();
            gridData.horizontalSpan = 2;
            BooleanParameter hap = new BooleanParameter(cSection, "peercontrol.hide.piece", "ConfigView.label.hap");
            hap.setLayoutData(gridData);
            gridData = new GridData();
            gridData.horizontalSpan = 2;
            BooleanParameter hapds = new BooleanParameter(cSection, "peercontrol.hide.piece.ds", "ConfigView.label.hapds");
            hapds.setLayoutData(gridData);
            hap.setAdditionalActionPerformer(new ChangeSelectionActionPerformer(hapds.getControl()));
        }
        // prioritise first/last pieces
        gridData = new GridData();
        gridData.horizontalSpan = 2;
        BooleanParameter firstPiece = new BooleanParameter(cSection, "Prioritize First Piece", "ConfigView.label.prioritizefirstpiece");
        firstPiece.setLayoutData(gridData);
        // Further prioritize High priority files according to % complete and size of file
        gridData = new GridData();
        gridData.horizontalSpan = 2;
        BooleanParameter mostCompletedFiles = new BooleanParameter(cSection, "Prioritize Most Completed Files", "ConfigView.label.prioritizemostcompletedfiles");
        mostCompletedFiles.setLayoutData(gridData);
        // ignore ports
        Composite cMiniArea = new Composite(cSection, SWT.NULL);
        layout = new GridLayout();
        layout.numColumns = 2;
        layout.marginHeight = 0;
        layout.marginWidth = 0;
        cMiniArea.setLayout(layout);
        gridData = new GridData(GridData.FILL_HORIZONTAL);
        gridData.horizontalSpan = 2;
        Utils.setLayoutData(cMiniArea, gridData);
        gridData = new GridData();
        label = new Label(cMiniArea, SWT.NULL);
        Utils.setLayoutData(label, gridData);
        Messages.setLanguageText(label, "ConfigView.label.transfer.ignorepeerports");
        gridData = new GridData();
        gridData.widthHint = 125;
        StringParameter ignore_ports = new StringParameter(cMiniArea, "Ignore.peer.ports", "0");
        ignore_ports.setLayoutData(gridData);
    }
    return cSection;
}
Also used : Group(org.eclipse.swt.widgets.Group) CoreRunningListener(com.biglybt.core.CoreRunningListener) Listener(org.eclipse.swt.widgets.Listener) LinkLabel(com.biglybt.ui.swt.components.LinkLabel) Label(org.eclipse.swt.widgets.Label) Image(org.eclipse.swt.graphics.Image) GridLayout(org.eclipse.swt.layout.GridLayout) Control(org.eclipse.swt.widgets.Control) CoreRunningListener(com.biglybt.core.CoreRunningListener) Core(com.biglybt.core.Core) Composite(org.eclipse.swt.widgets.Composite) LinkLabel(com.biglybt.ui.swt.components.LinkLabel) GridData(org.eclipse.swt.layout.GridData) Event(org.eclipse.swt.widgets.Event) ImageLoader(com.biglybt.ui.swt.imageloader.ImageLoader)

Example 3 with CoreRunningListener

use of com.biglybt.core.CoreRunningListener in project BiglyBT by BiglySoftware.

the class TransferStatsView method initialize.

private void initialize(Composite composite) {
    mainPanel = new Composite(composite, SWT.NULL);
    GridLayout mainLayout = new GridLayout();
    mainPanel.setLayout(mainLayout);
    CoreFactory.addCoreRunningListener(new CoreRunningListener() {

        @Override
        public void coreRunning(Core core) {
            Utils.execSWTThread(new AERunnable() {

                @Override
                public void runSupport() {
                    if (mainPanel == null || mainPanel.isDisposed()) {
                        return;
                    }
                    createGeneralPanel();
                    createConnectionPanel();
                    createCapacityPanel();
                    createAutoSpeedPanel();
                    initialised = true;
                }
            });
        }
    });
}
Also used : AERunnable(com.biglybt.core.util.AERunnable) GridLayout(org.eclipse.swt.layout.GridLayout) Composite(org.eclipse.swt.widgets.Composite) ScrolledComposite(org.eclipse.swt.custom.ScrolledComposite) CoreRunningListener(com.biglybt.core.CoreRunningListener) Core(com.biglybt.core.Core)

Example 4 with CoreRunningListener

use of com.biglybt.core.CoreRunningListener in project BiglyBT by BiglySoftware.

the class VivaldiView method initialize.

private void initialize(Composite composite) {
    CoreFactory.addCoreRunningListener(new CoreRunningListener() {

        @Override
        public void coreRunning(Core core) {
            VivaldiView.this.core = core;
            init(core);
        }
    });
    panel = new Composite(composite, SWT.NULL);
    panel.setLayout(new FillLayout());
    drawPanel = new VivaldiPanel(panel);
    drawPanel.setAutoAlpha(autoAlpha);
}
Also used : Composite(org.eclipse.swt.widgets.Composite) CoreRunningListener(com.biglybt.core.CoreRunningListener) FillLayout(org.eclipse.swt.layout.FillLayout) Core(com.biglybt.core.Core)

Example 5 with CoreRunningListener

use of com.biglybt.core.CoreRunningListener in project BiglyBT by BiglySoftware.

the class ManagerUtils method asyncPauseForPeriod.

public static void asyncPauseForPeriod(final List<DownloadManager> dms, final int seconds) {
    CoreWaiterSWT.waitForCore(TriggerInThread.NEW_THREAD, new CoreRunningListener() {

        @Override
        public void coreRunning(Core core) {
            final List<DownloadManager> paused = new ArrayList<>();
            final DownloadManagerListener listener = new DownloadManagerAdapter() {

                @Override
                public void stateChanged(DownloadManager manager, int state) {
                    synchronized (paused) {
                        if (!paused.remove(manager)) {
                            return;
                        }
                    }
                    manager.removeListener(this);
                }
            };
            long target_time = SystemTime.getOffsetTime(seconds * 1000);
            String time_str = new SimpleDateFormat("HH:mm:ss").format(new Date(target_time));
            String reason = MessageText.getString("label.resuming.at", new String[] { time_str });
            for (DownloadManager dm : dms) {
                if (!isPauseable(dm)) {
                    continue;
                }
                if (dm.pause(target_time)) {
                    dm.setStopReason(reason);
                    synchronized (paused) {
                        paused.add(dm);
                    }
                    dm.addListener(listener, false);
                }
            }
            if (paused.size() > 0) {
                SimpleTimer.addEvent("ManagerUtils.resumer", target_time, new TimerEventPerformer() {

                    @Override
                    public void perform(TimerEvent event) {
                        List<DownloadManager> to_resume = new ArrayList<>();
                        synchronized (paused) {
                            to_resume.addAll(paused);
                            paused.clear();
                        }
                        for (DownloadManager dm : to_resume) {
                            dm.removeListener(listener);
                            try {
                                dm.resume();
                            } catch (Throwable e) {
                                Debug.out(e);
                            }
                        }
                    }
                });
            }
        }
    });
}
Also used : DownloadManagerListener(com.biglybt.core.download.DownloadManagerListener) DownloadManager(com.biglybt.core.download.DownloadManager) DownloadManagerAdapter(com.biglybt.core.download.impl.DownloadManagerAdapter) CoreRunningListener(com.biglybt.core.CoreRunningListener) SimpleDateFormat(java.text.SimpleDateFormat) Core(com.biglybt.core.Core)

Aggregations

Core (com.biglybt.core.Core)35 CoreRunningListener (com.biglybt.core.CoreRunningListener)35 DownloadManager (com.biglybt.core.download.DownloadManager)8 GridLayout (org.eclipse.swt.layout.GridLayout)6 Composite (org.eclipse.swt.widgets.Composite)6 GlobalManager (com.biglybt.core.global.GlobalManager)5 AERunnable (com.biglybt.core.util.AERunnable)5 ImageLoader (com.biglybt.ui.swt.imageloader.ImageLoader)4 SWTSkinObject (com.biglybt.ui.swt.skin.SWTSkinObject)4 MessageText (com.biglybt.core.internat.MessageText)3 LogAlert (com.biglybt.core.logging.LogAlert)3 Tag (com.biglybt.core.tag.Tag)3 TOTorrent (com.biglybt.core.torrent.TOTorrent)3 VuzeFile (com.biglybt.core.vuzefile.VuzeFile)3 UIFunctions (com.biglybt.ui.UIFunctions)3 File (java.io.File)3 List (java.util.List)3 GridData (org.eclipse.swt.layout.GridData)3 ParameterListener (com.biglybt.core.config.ParameterListener)2 DiskManagerFileInfo (com.biglybt.core.disk.DiskManagerFileInfo)2