From 6508522c9c6b4b5076d2d81e45460387adf98eb1 Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Fri, 29 May 2020 11:05:58 +0100 Subject: [PATCH] tunnel quantity and length sliders step --- .../com/muwire/gui/wizard/WizardModel.groovy | 1 + .../com/muwire/gui/wizard/TunnelStep.groovy | 61 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 gui/src/main/groovy/com/muwire/gui/wizard/TunnelStep.groovy diff --git a/gui/griffon-app/models/com/muwire/gui/wizard/WizardModel.groovy b/gui/griffon-app/models/com/muwire/gui/wizard/WizardModel.groovy index 1eb65c42..123305e9 100644 --- a/gui/griffon-app/models/com/muwire/gui/wizard/WizardModel.groovy +++ b/gui/griffon-app/models/com/muwire/gui/wizard/WizardModel.groovy @@ -31,6 +31,7 @@ class WizardModel { steps << new EmbeddedRouterStep() else steps << new ExternalRouterStep() + steps << new TunnelStep() steps << new LastStep(embeddedRouterAvailable) currentStep = 0 diff --git a/gui/src/main/groovy/com/muwire/gui/wizard/TunnelStep.groovy b/gui/src/main/groovy/com/muwire/gui/wizard/TunnelStep.groovy new file mode 100644 index 00000000..9fbe0fc8 --- /dev/null +++ b/gui/src/main/groovy/com/muwire/gui/wizard/TunnelStep.groovy @@ -0,0 +1,61 @@ +package com.muwire.gui.wizard + +import java.awt.GridBagConstraints + +import javax.swing.JLabel +import javax.swing.border.TitledBorder + +import com.muwire.core.MuWireSettings + +class TunnelStep extends WizardStep { + + + def tunnelLengthSlider + def tunnelQuantitySlider + + public TunnelStep() { + super("tunnels") + } + + @Override + protected void buildUI(FactoryBuilderSupport builder) { + builder.panel (constraints : getConstraint()) { + gridBagLayout() + panel (border : titledBorder(title : "Speed vs. Anonymity", border : etchedBorder(), titlePosition: TitledBorder.TOP, + constraints : gbc(gridx: 0, gridy: 0, fill : GridBagConstraints.HORIZONTAL, weightx : 100))) { + def lengthTable = new Hashtable() + lengthTable.put(1, new JLabel("Max Speed")) + lengthTable.put(3, new JLabel("Max Anonymity")) + tunnelLengthSlider = slider(minimum : 1, maximum : 3, value : 3, + majorTickSpacing : 1, snapToTicks: true, paintTicks: true, labelTable : lengthTable, + paintLabels : true) + } + panel (border : titledBorder(title : "Reliability vs. Resource Usage", border : etchedBorder(), titlePosition: TitledBorder.TOP, + constraints : gbc(gridx: 0, gridy: 1, fill : GridBagConstraints.HORIZONTAL, weightx : 100))) { + def quantityTable = new Hashtable() + quantityTable.put(1, new JLabel("Min Resources")) + quantityTable.put(6, new JLabel("Max Reliability")) + tunnelQuantitySlider = slider(minimum : 1, maximum : 6, value : 4, + majorTickSpacing : 1, snapToTicks : true, paintTicks: true, labelTable : quantityTable, + paintLabels : true) + } + panel(constraints : gbc(gridx:0, gridy: 2, weighty: 100)) + } + } + + @Override + protected List validate() { + return null + } + + @Override + protected void apply(MuWireSettings muSettings, Properties i2pSettings) { + String tunnelLength = String.valueOf(tunnelLengthSlider.value) + i2pSettings['inbound.length'] = tunnelLength + i2pSettings['outbound.length'] = tunnelLength + + String tunnelQuantity = tunnelQuantitySlider.value + i2pSettings['inbound.quantity'] = tunnelQuantity + i2pSettings['outbound.quantity'] = tunnelQuantity + } +}