Search in sources :

Example 6 with BooleanParameter

use of com.biglybt.ui.swt.config.BooleanParameter in project BiglyBT by BiglySoftware.

the class ConfigSectionBackupRestore method configSectionCreate.

@Override
public Composite configSectionCreate(final Composite parent) {
    ImageLoader imageLoader = ImageLoader.getInstance();
    Image imgOpenFolder = imageLoader.getImage("openFolderButton");
    GridData gridData;
    GridLayout layout;
    final Composite cBR = new Composite(parent, SWT.NULL);
    gridData = new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL);
    cBR.setLayoutData(gridData);
    layout = new GridLayout();
    layout.numColumns = 1;
    cBR.setLayout(layout);
    Label info_label = new Label(cBR, SWT.WRAP);
    Messages.setLanguageText(info_label, "ConfigView.section.br.overview");
    gridData = Utils.getWrappableLabelGridData(1, GridData.HORIZONTAL_ALIGN_FILL);
    info_label.setLayoutData(gridData);
    // wiki link
    final Label linkLabel = new Label(cBR, SWT.NULL);
    linkLabel.setText(MessageText.getString("ConfigView.label.please.visit.here"));
    linkLabel.setData(Constants.URL_WIKI + "w/Backup_And_Restore");
    linkLabel.setCursor(linkLabel.getDisplay().getSystemCursor(SWT.CURSOR_HAND));
    linkLabel.setForeground(Colors.blue);
    gridData = Utils.getWrappableLabelGridData(1, 0);
    linkLabel.setLayoutData(gridData);
    linkLabel.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseDoubleClick(MouseEvent arg0) {
            Utils.launch((String) ((Label) arg0.widget).getData());
        }

        @Override
        public void mouseDown(MouseEvent arg0) {
            Utils.launch((String) ((Label) arg0.widget).getData());
        }
    });
    ClipboardCopy.addCopyToClipMenu(linkLabel);
    final BackupManager backup_manager = BackupManagerFactory.getManager(CoreFactory.getSingleton());
    // backup
    Group gBackup = new Group(cBR, SWT.NULL);
    Messages.setLanguageText(gBackup, "br.backup");
    layout = new GridLayout(2, false);
    gBackup.setLayout(layout);
    gBackup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    // info
    Label last_backup_label = new Label(gBackup, SWT.NULL);
    Messages.setLanguageText(last_backup_label, "br.backup.last.time");
    final Label last_backup_time = new Label(gBackup, SWT.NULL);
    Label last_backup_error_label = new Label(gBackup, SWT.NULL);
    Messages.setLanguageText(last_backup_error_label, "br.backup.last.error");
    final Label last_backup_error = new Label(gBackup, SWT.NULL);
    final Runnable stats_updater = new Runnable() {

        @Override
        public void run() {
            long backup_time = backup_manager.getLastBackupTime();
            last_backup_time.setText(backup_time == 0 ? "" : String.valueOf(new Date(backup_time)));
            last_backup_error.setText(backup_manager.getLastBackupError());
        }
    };
    stats_updater.run();
    // manual button
    Label backup_manual_label = new Label(gBackup, SWT.NULL);
    Messages.setLanguageText(backup_manual_label, "br.backup.manual.info");
    Button backup_button = new Button(gBackup, SWT.PUSH);
    Messages.setLanguageText(backup_button, "br.backup");
    backup_button.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event event) {
            String def_dir = COConfigurationManager.getStringParameter("br.backup.folder.default");
            DirectoryDialog dialog = new DirectoryDialog(parent.getShell(), SWT.APPLICATION_MODAL);
            if (def_dir != null) {
                dialog.setFilterPath(def_dir);
            }
            dialog.setMessage(MessageText.getString("br.backup.folder.info"));
            dialog.setText(MessageText.getString("br.backup.folder.title"));
            String path = dialog.open();
            if (path != null) {
                COConfigurationManager.setParameter("br.backup.folder.default", path);
                runBackup(backup_manager, path, stats_updater);
            }
        }
    });
    final BooleanParameter auto_backup_enable = new BooleanParameter(gBackup, "br.backup.auto.enable", "br.backup.auto.enable");
    gridData = new GridData();
    gridData.horizontalSpan = 2;
    auto_backup_enable.setLayoutData(gridData);
    Composite gDefaultDir = new Composite(gBackup, SWT.NONE);
    layout = new GridLayout();
    layout.numColumns = 3;
    layout.marginHeight = 2;
    gDefaultDir.setLayout(layout);
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.horizontalSpan = 2;
    gDefaultDir.setLayoutData(gridData);
    Label lblDefaultDir = new Label(gDefaultDir, SWT.NONE);
    Messages.setLanguageText(lblDefaultDir, "ConfigView.section.file.defaultdir.ask");
    lblDefaultDir.setLayoutData(new GridData());
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    final StringParameter pathParameter = new StringParameter(gDefaultDir, "br.backup.auto.dir", "");
    pathParameter.setLayoutData(gridData);
    if (pathParameter.getValue().length() == 0) {
        String def_dir = COConfigurationManager.getStringParameter("br.backup.folder.default");
        pathParameter.setValue(def_dir);
    }
    Button browse = new Button(gDefaultDir, SWT.PUSH);
    browse.setImage(imgOpenFolder);
    imgOpenFolder.setBackground(browse.getBackground());
    browse.setToolTipText(MessageText.getString("ConfigView.button.browse"));
    browse.addListener(SWT.Selection, new Listener() {

        /* (non-Javadoc)
			 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
			 */
        @Override
        public void handleEvent(Event event) {
            DirectoryDialog dialog = new DirectoryDialog(parent.getShell(), SWT.APPLICATION_MODAL);
            dialog.setFilterPath(pathParameter.getValue());
            dialog.setMessage(MessageText.getString("br.backup.auto.dir.select"));
            dialog.setText(MessageText.getString("ConfigView.section.file.defaultdir.ask"));
            String path = dialog.open();
            if (path != null) {
                pathParameter.setValue(path);
                COConfigurationManager.setParameter("br.backup.folder.default", path);
            }
        }
    });
    Composite gPeriod = new Composite(gDefaultDir, SWT.NONE);
    layout = new GridLayout();
    layout.numColumns = 6;
    layout.marginLeft = 0;
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    layout.marginTop = 0;
    layout.marginBottom = 0;
    gPeriod.setLayout(layout);
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.horizontalSpan = 3;
    gPeriod.setLayoutData(gridData);
    Label lbl_backup_days = new Label(gPeriod, SWT.NULL);
    Messages.setLanguageText(lbl_backup_days, "br.backup.auto.everydays");
    IntParameter backup_everydays = new IntParameter(gPeriod, "br.backup.auto.everydays", 0, Integer.MAX_VALUE);
    gridData = new GridData();
    gridData.horizontalSpan = 2;
    backup_everydays.setLayoutData(gridData);
    Label lbl_backup_hours = new Label(gPeriod, SWT.NULL);
    Messages.setLanguageText(lbl_backup_hours, "br.backup.auto.everyhours");
    IntParameter backup_everyhours = new IntParameter(gPeriod, "br.backup.auto.everyhours", 1, Integer.MAX_VALUE);
    gridData = new GridData();
    gridData.horizontalSpan = 2;
    backup_everyhours.setLayoutData(gridData);
    // for whatever reason if you set enable synchronously it gets reset :(
    Utils.execSWTThreadLater(1, new Runnable() {

        public void run() {
            backup_everyhours.setEnabled(backup_everydays.getValue() == 0);
        }
    });
    backup_everydays.addChangeListener(new ParameterChangeAdapter() {

        @Override
        public void parameterChanged(Parameter p, boolean caused_internally) {
            backup_everyhours.setEnabled(backup_everydays.getValue() == 0);
        }
    });
    Label lbl_backup_retain = new Label(gDefaultDir, SWT.NULL);
    Messages.setLanguageText(lbl_backup_retain, "br.backup.auto.retain");
    IntParameter backup_retain = new IntParameter(gDefaultDir, "br.backup.auto.retain", 1, Integer.MAX_VALUE);
    gridData = new GridData();
    gridData.horizontalSpan = 2;
    backup_retain.setLayoutData(gridData);
    BooleanParameter chkNotify = new BooleanParameter(gDefaultDir, "br.backup.notify", "br.backup.notify");
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.horizontalSpan = 3;
    chkNotify.setLayoutData(gridData);
    Label backup_auto_label = new Label(gDefaultDir, SWT.NULL);
    Messages.setLanguageText(backup_auto_label, "br.backup.auto.now");
    Button backup_auto_button = new Button(gDefaultDir, SWT.PUSH);
    Messages.setLanguageText(backup_auto_button, "br.test");
    backup_auto_button.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event event) {
            runBackup(backup_manager, null, stats_updater);
        }
    });
    auto_backup_enable.setAdditionalActionPerformer(new ChangeSelectionActionPerformer(gDefaultDir));
    // restore
    Group gRestore = new Group(cBR, SWT.NULL);
    Messages.setLanguageText(gRestore, "br.restore");
    layout = new GridLayout(2, false);
    gRestore.setLayout(layout);
    gRestore.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    Label restore_label = new Label(gRestore, SWT.NULL);
    Messages.setLanguageText(restore_label, "br.restore.info");
    Button restore_button = new Button(gRestore, SWT.PUSH);
    Messages.setLanguageText(restore_button, "br.restore");
    restore_button.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event event) {
            String def_dir = COConfigurationManager.getStringParameter("br.backup.folder.default");
            DirectoryDialog dialog = new DirectoryDialog(parent.getShell(), SWT.APPLICATION_MODAL);
            if (def_dir != null) {
                dialog.setFilterPath(def_dir);
            }
            dialog.setMessage(MessageText.getString("br.restore.folder.info"));
            dialog.setText(MessageText.getString("br.restore.folder.title"));
            final String path = dialog.open();
            if (path != null) {
                MessageBoxShell mb = new MessageBoxShell(SWT.ICON_WARNING | SWT.OK | SWT.CANCEL, MessageText.getString("br.restore.warning.title"), MessageText.getString("br.restore.warning.info"));
                mb.setDefaultButtonUsingStyle(SWT.CANCEL);
                mb.setParent(parent.getShell());
                mb.open(new UserPrompterResultListener() {

                    @Override
                    public void prompterClosed(int returnVal) {
                        if (returnVal != SWT.OK) {
                            return;
                        }
                        final TextViewerWindow viewer = new TextViewerWindow(MessageText.getString("br.backup.progress"), null, "", true, true);
                        viewer.setEditable(false);
                        viewer.setOKEnabled(false);
                        backup_manager.restore(new File(path), new BackupManager.BackupListener() {

                            @Override
                            public boolean reportProgress(String str) {
                                return (append(str, false));
                            }

                            @Override
                            public void reportComplete() {
                                append("Restore Complete!", true);
                                Utils.execSWTThread(new AERunnable() {

                                    @Override
                                    public void runSupport() {
                                        MessageBoxShell mb = new MessageBoxShell(SWT.ICON_INFORMATION | SWT.OK, MessageText.getString("ConfigView.section.security.restart.title"), MessageText.getString("ConfigView.section.security.restart.msg"));
                                        mb.setParent(parent.getShell());
                                        mb.open(new UserPrompterResultListener() {

                                            @Override
                                            public void prompterClosed(int returnVal) {
                                                UIFunctionsSWT uiFunctions = UIFunctionsManagerSWT.getUIFunctionsSWT();
                                                if (uiFunctions != null) {
                                                    uiFunctions.dispose(true, false);
                                                }
                                            }
                                        });
                                    }
                                });
                            }

                            @Override
                            public void reportError(Throwable error) {
                                append("Restore Failed: " + Debug.getNestedExceptionMessage(error), true);
                            }

                            private boolean append(final String str, final boolean complete) {
                                if (viewer.isDisposed()) {
                                    return (false);
                                }
                                Utils.execSWTThread(new AERunnable() {

                                    @Override
                                    public void runSupport() {
                                        if (str.endsWith("...")) {
                                            viewer.append(str);
                                        } else {
                                            viewer.append(str + "\r\n");
                                        }
                                        if (complete) {
                                            viewer.setOKEnabled(true);
                                        }
                                    }
                                });
                                return (true);
                            }
                        });
                        viewer.goModal();
                    }
                });
            }
        }
    });
    return (cBR);
}
Also used : AERunnable(com.biglybt.core.util.AERunnable) ParameterChangeListener(com.biglybt.ui.swt.config.ParameterChangeListener) UserPrompterResultListener(com.biglybt.ui.UserPrompterResultListener) Image(org.eclipse.swt.graphics.Image) GridLayout(org.eclipse.swt.layout.GridLayout) TextViewerWindow(com.biglybt.ui.swt.TextViewerWindow) StringParameter(com.biglybt.ui.swt.config.StringParameter) MouseEvent(org.eclipse.swt.events.MouseEvent) MouseAdapter(org.eclipse.swt.events.MouseAdapter) ParameterChangeAdapter(com.biglybt.ui.swt.config.ParameterChangeAdapter) MessageBoxShell(com.biglybt.ui.swt.shells.MessageBoxShell) UIFunctionsSWT(com.biglybt.ui.swt.UIFunctionsSWT) BackupManager(com.biglybt.core.backup.BackupManager) BooleanParameter(com.biglybt.ui.swt.config.BooleanParameter) Date(java.util.Date) UserPrompterResultListener(com.biglybt.ui.UserPrompterResultListener) AERunnable(com.biglybt.core.util.AERunnable) GridData(org.eclipse.swt.layout.GridData) MouseEvent(org.eclipse.swt.events.MouseEvent) BooleanParameter(com.biglybt.ui.swt.config.BooleanParameter) StringParameter(com.biglybt.ui.swt.config.StringParameter) IntParameter(com.biglybt.ui.swt.config.IntParameter) Parameter(com.biglybt.ui.swt.config.Parameter) ChangeSelectionActionPerformer(com.biglybt.ui.swt.config.ChangeSelectionActionPerformer) ImageLoader(com.biglybt.ui.swt.imageloader.ImageLoader) File(java.io.File) IntParameter(com.biglybt.ui.swt.config.IntParameter)

Example 7 with BooleanParameter

use of com.biglybt.ui.swt.config.BooleanParameter in project BiglyBT by BiglySoftware.

the class ConfigSectionTransferAutoSpeedBeta method configSectionCreate.

@Override
public Composite configSectionCreate(final Composite parent) {
    GridData gridData;
    Composite cSection = new Composite(parent, SWT.NULL);
    gridData = new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL);
    cSection.setLayoutData(gridData);
    GridLayout subPanel = new GridLayout();
    subPanel.numColumns = 3;
    cSection.setLayout(subPanel);
    // add a comment to the debug log.
    // /////////////////////////////////
    // Comment group
    // /////////////////////////////////
    Group commentGroup = new Group(cSection, SWT.NULL);
    Messages.setLanguageText(commentGroup, "ConfigTransferAutoSpeed.add.comment.to.log.group");
    GridLayout commentLayout = new GridLayout();
    commentLayout.numColumns = 3;
    commentGroup.setLayout(commentLayout);
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    commentGroup.setLayoutData(gridData);
    // Label
    Label commentLabel = new Label(commentGroup, SWT.NULL);
    Messages.setLanguageText(commentLabel, "ConfigTransferAutoSpeed.add.comment.to.log");
    gridData = new GridData();
    gridData.horizontalSpan = 1;
    commentLabel.setLayoutData(gridData);
    // Text-Box
    final Text commentBox = new Text(commentGroup, SWT.BORDER);
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.horizontalSpan = 1;
    commentBox.setText("");
    commentBox.setLayoutData(gridData);
    // button
    Button commentButton = new Button(commentGroup, SWT.PUSH);
    // Messages.
    gridData = new GridData();
    gridData.horizontalSpan = 1;
    commentButton.setLayoutData(gridData);
    Messages.setLanguageText(commentButton, "ConfigTransferAutoSpeed.log.button");
    commentButton.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event event) {
            // Add a file to the log.
            AEDiagnosticsLogger dLog = AEDiagnostics.getLogger("AutoSpeed");
            String comment = commentBox.getText();
            if (comment != null) {
                if (comment.length() > 0) {
                    dLog.log("user-comment:" + comment);
                    commentBox.setText("");
                }
            }
        }
    });
    // spacer
    Label commentSpacer = new Label(cSection, SWT.NULL);
    gridData = new GridData();
    gridData.horizontalSpan = 3;
    commentSpacer.setLayoutData(gridData);
    // /////////////////////////
    // Upload Capacity used settings.
    // /////////////////////////
    Group uploadCapGroup = new Group(cSection, SWT.NULL);
    Messages.setLanguageText(uploadCapGroup, "ConfigTransferAutoSpeed.upload.capacity.usage");
    GridLayout uCapLayout = new GridLayout();
    uCapLayout.numColumns = 2;
    uploadCapGroup.setLayout(uCapLayout);
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.horizontalSpan = 3;
    uploadCapGroup.setLayoutData(gridData);
    // Label column
    Label upCapModeLbl = new Label(uploadCapGroup, SWT.NULL);
    gridData = new GridData();
    upCapModeLbl.setLayoutData(gridData);
    Messages.setLanguageText(upCapModeLbl, "ConfigTransferAutoSpeed.mode");
    Label ucSetLbl = new Label(uploadCapGroup, SWT.NULL);
    gridData = new GridData();
    gridData.horizontalSpan = 2;
    Messages.setLanguageText(ucSetLbl, "ConfigTransferAutoSpeed.capacity.used");
    Label dlModeLbl = new Label(uploadCapGroup, SWT.NULL);
    Messages.setLanguageText(dlModeLbl, "ConfigTransferAutoSpeed.while.downloading");
    // add a drop down.
    String[] downloadModeNames = { " 80%", " 70%", " 60%", " 50%" };
    int[] downloadModeValues = { 80, 70, 60, 50 };
    new IntListParameter(uploadCapGroup, SpeedLimitMonitor.USED_UPLOAD_CAPACITY_DOWNLOAD_MODE, downloadModeNames, downloadModeValues);
    // spacer
    Label cSpacer = new Label(cSection, SWT.NULL);
    gridData = new GridData();
    gridData.horizontalSpan = 4;
    cSpacer.setLayoutData(gridData);
    // ////////////////////////
    // DHT Ping Group
    // ////////////////////////
    Group dhtGroup = new Group(cSection, SWT.NULL);
    Messages.setLanguageText(dhtGroup, "ConfigTransferAutoSpeed.data.update.frequency");
    dhtGroup.setLayout(subPanel);
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.horizontalSpan = 3;
    dhtGroup.setLayoutData(gridData);
    // how much data to accumulate before making an adjustment.
    Label iCount = new Label(dhtGroup, SWT.NULL);
    gridData = new GridData();
    gridData.horizontalSpan = 2;
    gridData.horizontalAlignment = GridData.BEGINNING;
    iCount.setLayoutData(gridData);
    // iCount.setText("Adjustment interval: ");
    Messages.setLanguageText(iCount, "ConfigTransferAutoSpeed.adjustment.interval");
    IntParameter adjustmentInterval = new IntParameter(dhtGroup, SpeedManagerAlgorithmProviderV2.SETTING_INTERVALS_BETWEEN_ADJUST);
    gridData = new GridData();
    adjustmentInterval.setLayoutData(gridData);
    // spacer
    cSpacer = new Label(cSection, SWT.NULL);
    gridData = new GridData();
    gridData.horizontalSpan = 1;
    cSpacer.setLayoutData(gridData);
    // how much data to accumulate before making an adjustment.
    Label skip = new Label(dhtGroup, SWT.NULL);
    gridData = new GridData();
    gridData.horizontalSpan = 2;
    gridData.horizontalAlignment = GridData.BEGINNING;
    skip.setLayoutData(gridData);
    // skip.setText("Skip after adjustment: ");
    Messages.setLanguageText(skip, "ConfigTransferAutoSpeed.skip.after.adjust");
    BooleanParameter skipAfterAdjustment = new BooleanParameter(dhtGroup, SpeedManagerAlgorithmProviderV2.SETTING_WAIT_AFTER_ADJUST);
    gridData = new GridData();
    skipAfterAdjustment.setLayoutData(gridData);
    // spacer
    cSpacer = new Label(cSection, SWT.NULL);
    gridData = new GridData();
    gridData.horizontalSpan = 3;
    cSpacer.setLayoutData(gridData);
    return cSection;
}
Also used : IntListParameter(com.biglybt.ui.swt.config.IntListParameter) BooleanParameter(com.biglybt.ui.swt.config.BooleanParameter) GridLayout(org.eclipse.swt.layout.GridLayout) AEDiagnosticsLogger(com.biglybt.core.util.AEDiagnosticsLogger) GridData(org.eclipse.swt.layout.GridData) IntParameter(com.biglybt.ui.swt.config.IntParameter)

Aggregations

BooleanParameter (com.biglybt.ui.swt.config.BooleanParameter)7 GridData (org.eclipse.swt.layout.GridData)7 GridLayout (org.eclipse.swt.layout.GridLayout)7 ChangeSelectionActionPerformer (com.biglybt.ui.swt.config.ChangeSelectionActionPerformer)3 IntParameter (com.biglybt.ui.swt.config.IntParameter)3 Composite (org.eclipse.swt.widgets.Composite)3 Label (org.eclipse.swt.widgets.Label)3 AERunnable (com.biglybt.core.util.AERunnable)2 IntListParameter (com.biglybt.ui.swt.config.IntListParameter)2 Parameter (com.biglybt.ui.swt.config.Parameter)2 StringListParameter (com.biglybt.ui.swt.config.StringListParameter)2 StringParameter (com.biglybt.ui.swt.config.StringParameter)2 BackupManager (com.biglybt.core.backup.BackupManager)1 LocaleUtilDecoder (com.biglybt.core.internat.LocaleUtilDecoder)1 AEDiagnosticsLogger (com.biglybt.core.util.AEDiagnosticsLogger)1 com.biglybt.pif.ui.config (com.biglybt.pif.ui.config)1 BasicPluginConfigModel (com.biglybt.pif.ui.model.BasicPluginConfigModel)1 com.biglybt.pifimpl.local.ui.config (com.biglybt.pifimpl.local.ui.config)1 UserPrompterResultListener (com.biglybt.ui.UserPrompterResultListener)1 TextViewerWindow (com.biglybt.ui.swt.TextViewerWindow)1