* desktopgui:
- Added client and server tunnel view (saving does not work yet)
This commit is contained in:
@ -77,11 +77,13 @@
|
||||
<property name="build_lib" location="lib"/>
|
||||
<property name="build_i2pref" location="../../build"/>
|
||||
<property name="build_routerconsole" location="../routerconsole/java/build/"/>
|
||||
<property name="build_i2ptunnel" location="../i2ptunnel/java/build/"/>
|
||||
|
||||
<path id="build_classpath">
|
||||
<fileset dir="${build_lib}" includes="**/*.jar"/>
|
||||
<fileset dir="${build_i2pref}" includes="**/*.jar"/>
|
||||
<fileset dir="${build_routerconsole}" includes="**/*.jar"/>
|
||||
<fileset dir="${build_i2ptunnel}" includes="**/*.jar"/>
|
||||
</path>
|
||||
<target name="build_init">
|
||||
<!-- Create the time stamp -->
|
||||
|
@ -22,6 +22,7 @@ dist.javadoc.dir=${dist.dir}/javadoc
|
||||
excludes=
|
||||
file.reference.appframework.jar=lib/appframework.jar
|
||||
file.reference.i2p.jar=../../core/java/build/i2p.jar
|
||||
file.reference.i2ptunnel.jar=../i2ptunnel/java/build/i2ptunnel.jar
|
||||
file.reference.router.jar=../../router/java/build/router.jar
|
||||
file.reference.routerconsole.jar=../routerconsole/java/build/routerconsole.jar
|
||||
file.reference.swing-worker.jar=lib/swing-worker.jar
|
||||
@ -32,7 +33,8 @@ javac.classpath=\
|
||||
${file.reference.appframework.jar}:\
|
||||
${file.reference.swing-worker.jar}:\
|
||||
${file.reference.i2p.jar}:\
|
||||
${file.reference.routerconsole.jar}
|
||||
${file.reference.routerconsole.jar}:\
|
||||
${file.reference.i2ptunnel.jar}
|
||||
# Space-separated list of extra javac options
|
||||
javac.compilerargs=
|
||||
javac.deprecation=false
|
||||
|
@ -10,5 +10,5 @@ package net.i2p.desktopgui.desktopgui;
|
||||
* @author mathias
|
||||
*/
|
||||
public class GUIVersion {
|
||||
public static final String VERSION = "0.0.1.3";
|
||||
public static final String VERSION = "0.0.2";
|
||||
}
|
||||
|
@ -0,0 +1,396 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<Form version="1.5" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
|
||||
<Properties>
|
||||
<Property name="defaultCloseOperation" type="int" value="3"/>
|
||||
<Property name="title" type="java.lang.String" resourceKey="Form.title"/>
|
||||
<Property name="name" type="java.lang.String" value="Form" noResource="true"/>
|
||||
</Properties>
|
||||
<SyntheticProperties>
|
||||
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
|
||||
</SyntheticProperties>
|
||||
<AuxValues>
|
||||
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="2"/>
|
||||
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="true"/>
|
||||
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
|
||||
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
|
||||
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
|
||||
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
|
||||
<AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,2,48,0,0,2,48"/>
|
||||
</AuxValues>
|
||||
|
||||
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout">
|
||||
<Property name="useNullLayout" type="boolean" value="true"/>
|
||||
</Layout>
|
||||
<SubComponents>
|
||||
<Component class="javax.swing.JLabel" name="tunnelNameLabel">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="tunnelNameLabel.text"/>
|
||||
<Property name="name" type="java.lang.String" value="tunnelNameLabel" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="20" y="20" width="120" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="tunnelTypeLabel">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="tunnelTypeLabel.text"/>
|
||||
<Property name="name" type="java.lang.String" value="tunnelTypeLabel" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="20" y="50" width="120" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="tunnelPortLabel">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="tunnelPortLabel.text"/>
|
||||
<Property name="name" type="java.lang.String" value="tunnelPortLabel" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="20" y="80" width="110" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="tunnelDestinationLabel">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="tunnelDestinationLabel.text"/>
|
||||
<Property name="name" type="java.lang.String" value="tunnelDestinationLabel" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="20" y="110" width="110" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="tunnelProfileLabel">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="tunnelProfileLabel.text"/>
|
||||
<Property name="name" type="java.lang.String" value="tunnelProfileLabel" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="20" y="140" width="110" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JCheckBox" name="delayConnect">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="delayConnect.text"/>
|
||||
<Property name="name" type="java.lang.String" value="delayConnect" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="20" y="170" width="160" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JCheckBox" name="sharedClient">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="sharedClient.text"/>
|
||||
<Property name="name" type="java.lang.String" value="sharedClient" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="20" y="200" width="160" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JCheckBox" name="autoStart">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="autoStart.text"/>
|
||||
<Property name="name" type="java.lang.String" value="autoStart" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="20" y="230" width="160" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JSeparator" name="jSeparator1">
|
||||
<Properties>
|
||||
<Property name="name" type="java.lang.String" value="jSeparator1" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="0" y="510" width="750" height="10"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="tunnelDepthLabel">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="tunnelDepthLabel.text"/>
|
||||
<Property name="name" type="java.lang.String" value="tunnelDepthLabel" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="20" y="280" width="160" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="depthVarianceLabel">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="depthVarianceLabel.text"/>
|
||||
<Property name="name" type="java.lang.String" value="depthVarianceLabel" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="20" y="310" width="160" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="tunnelCountLabel">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="tunnelCountLabel.text"/>
|
||||
<Property name="name" type="java.lang.String" value="tunnelCountLabel" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="20" y="340" width="160" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="backupTunnelCountLabel">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="backupTunnelCountLabel.text"/>
|
||||
<Property name="name" type="java.lang.String" value="backupTunnelCountLabel" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="20" y="370" width="170" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JSeparator" name="jSeparator2">
|
||||
<Properties>
|
||||
<Property name="name" type="java.lang.String" value="jSeparator2" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="0" y="260" width="750" height="10"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JCheckBox" name="reduceIdle">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="reduceIdle.text"/>
|
||||
<Property name="name" type="java.lang.String" value="reduceIdle" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="20" y="420" width="300" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JCheckBox" name="closeIdle">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="closeIdle.text"/>
|
||||
<Property name="name" type="java.lang.String" value="closeIdle" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="20" y="450" width="370" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JCheckBox" name="delayIdle">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="delayIdle.text"/>
|
||||
<Property name="name" type="java.lang.String" value="delayIdle" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="20" y="480" width="400" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JSeparator" name="jSeparator3">
|
||||
<Properties>
|
||||
<Property name="name" type="java.lang.String" value="jSeparator3" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="0" y="400" width="760" height="10"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JButton" name="save">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="save.text"/>
|
||||
<Property name="name" type="java.lang.String" value="save" noResource="true"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="saveActionPerformed"/>
|
||||
</Events>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="10" y="520" width="-1" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JButton" name="cancel">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="cancel.text"/>
|
||||
<Property name="name" type="java.lang.String" value="cancel" noResource="true"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="cancelActionPerformed"/>
|
||||
</Events>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="60" y="520" width="-1" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JTextField" name="tunnelName">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="tunnelName.text"/>
|
||||
<Property name="name" type="java.lang.String" value="tunnelName" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="200" y="20" width="340" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="tunnelType">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="tunnelType.text"/>
|
||||
<Property name="name" type="java.lang.String" value="tunnelType" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="200" y="50" width="340" height="20"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JTextField" name="tunnelPort">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="tunnelPort.text"/>
|
||||
<Property name="name" type="java.lang.String" value="tunnelPort" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="200" y="70" width="340" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JTextField" name="tunnelDestination">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="tunnelDestination.text"/>
|
||||
<Property name="name" type="java.lang.String" value="tunnelDestination" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="200" y="100" width="340" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JComboBox" name="tunnelProfile">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
|
||||
<StringArray count="2">
|
||||
<StringItem index="0" value="Interactive connection (Instant messaging)"/>
|
||||
<StringItem index="1" value="Bulk connection (Downloads, websites...)"/>
|
||||
</StringArray>
|
||||
</Property>
|
||||
<Property name="name" type="java.lang.String" value="tunnelProfile" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="200" y="130" width="340" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JComboBox" name="tunnelDepth">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
|
||||
<StringArray count="4">
|
||||
<StringItem index="0" value="0 hop tunnel (no anonymity, low latency)"/>
|
||||
<StringItem index="1" value="1 hop tunnel (low anonymity, low latency)"/>
|
||||
<StringItem index="2" value="2 hop tunnel (medium anonymity, medium latency)"/>
|
||||
<StringItem index="3" value="3 hop tunnel (high anonymity, high latency)"/>
|
||||
</StringArray>
|
||||
</Property>
|
||||
<Property name="name" type="java.lang.String" value="tunnelDepth" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="200" y="280" width="350" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JComboBox" name="depthVariance">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
|
||||
<StringArray count="5">
|
||||
<StringItem index="0" value="0 hop variance (no random, good performance)"/>
|
||||
<StringItem index="1" value="+ 0-1 hop variance (slightly random, lower performance)"/>
|
||||
<StringItem index="2" value="+ 0-2 hop variance (very random, lower performance)"/>
|
||||
<StringItem index="3" value="+/- 0-1 hop variance (slightly random, standard performance)"/>
|
||||
<StringItem index="4" value="+/- 0-2 hop variance (not recommended)"/>
|
||||
</StringArray>
|
||||
</Property>
|
||||
<Property name="name" type="java.lang.String" value="depthVariance" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="200" y="310" width="350" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JComboBox" name="tunnelCount">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
|
||||
<StringArray count="3">
|
||||
<StringItem index="0" value="1 tunnel (low bandwidth usage, low reliability)"/>
|
||||
<StringItem index="1" value="2 tunnels (standard bandwidth usage, standard reliability)"/>
|
||||
<StringItem index="2" value="3 tunnels (high bandwidth usage, high reliability)"/>
|
||||
</StringArray>
|
||||
</Property>
|
||||
<Property name="name" type="java.lang.String" value="tunnelCount" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="200" y="340" width="350" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JComboBox" name="backupTunnelCount">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
|
||||
<StringArray count="4">
|
||||
<StringItem index="0" value="0 backup tunnels (no redundancy, no resource usage)"/>
|
||||
<StringItem index="1" value="1 backup tunnel (low redundancy, low resource usage)"/>
|
||||
<StringItem index="2" value="2 backup tunnels (medium redundancy, medium resource usage)"/>
|
||||
<StringItem index="3" value="3 backup tunnels (high redundancy, high resource usage)"/>
|
||||
</StringArray>
|
||||
</Property>
|
||||
<Property name="name" type="java.lang.String" value="backupTunnelCount" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="200" y="370" width="350" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JButton" name="changeTunnelState">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="changeTunnelState.text"/>
|
||||
<Property name="name" type="java.lang.String" value="changeTunnelState" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="160" y="520" width="150" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Form>
|
@ -0,0 +1,434 @@
|
||||
/*
|
||||
* ClientTunnelWindow.java
|
||||
*
|
||||
* Created on 10-jun-2009, 16:49:12
|
||||
*/
|
||||
|
||||
package net.i2p.desktopgui.gui;
|
||||
|
||||
import net.i2p.i2ptunnel.web.EditBean;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author mathias
|
||||
*/
|
||||
public class ClientTunnelWindow extends javax.swing.JFrame {
|
||||
|
||||
/** Creates new form ClientTunnelWindow */
|
||||
public ClientTunnelWindow(int tunnelNumber, ActionListener al) {
|
||||
initComponents();
|
||||
this.tunnelNumber = tunnelNumber;
|
||||
this.al = al;
|
||||
extraInitComponents();
|
||||
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
|
||||
this.setSize(600, 600);
|
||||
this.setLocationRelativeTo(null);
|
||||
this.requestFocus();
|
||||
this.changeTunnelState.setVisible(false); //TODO: implement tunnel state change
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
public void extraInitComponents() {
|
||||
EditBean bean = new EditBean();
|
||||
if(!bean.isClient(tunnelNumber)) {
|
||||
this.dispose();
|
||||
}
|
||||
else {
|
||||
this.tunnelName.setText(bean.getTunnelName(tunnelNumber));
|
||||
this.tunnelType.setText(bean.getTunnelType(tunnelNumber));
|
||||
this.tunnelPort.setText(bean.getClientPort(tunnelNumber));
|
||||
this.tunnelDestination.setText(bean.getClientDestination(tunnelNumber));
|
||||
|
||||
if(bean.getTunnelType(tunnelNumber).equals(TYPE_STREAMR_CLIENT)) {
|
||||
tunnelProfile.setVisible(false);
|
||||
tunnelProfileLabel.setVisible(false);
|
||||
this.delayConnect.setVisible(false);
|
||||
this.sharedClient.setVisible(false);
|
||||
this.autoStart.setVisible(false);
|
||||
}
|
||||
else {
|
||||
if(bean.isInteractive(tunnelNumber)) {
|
||||
tunnelProfile.setSelectedIndex(TUNNEL_INTERACTIVE);
|
||||
}
|
||||
else {
|
||||
tunnelProfile.setSelectedIndex(TUNNEL_BULK);
|
||||
}
|
||||
|
||||
this.delayConnect.setSelected(bean.shouldDelay(tunnelNumber));
|
||||
this.sharedClient.setSelected(bean.isSharedClient(tunnelNumber));
|
||||
this.autoStart.setSelected(bean.startAutomatically(tunnelNumber));
|
||||
}
|
||||
|
||||
this.tunnelDepth.setSelectedIndex(bean.getTunnelDepth(tunnelNumber, 2));
|
||||
|
||||
int variance = bean.getTunnelVariance(tunnelNumber, 0);
|
||||
if(variance == 0) {
|
||||
this.depthVariance.setSelectedIndex(0);
|
||||
}
|
||||
else if(variance == 1) {
|
||||
this.depthVariance.setSelectedIndex(1);
|
||||
}
|
||||
else if(variance == 2) {
|
||||
this.depthVariance.setSelectedIndex(2);
|
||||
}
|
||||
else if(variance == -1) {
|
||||
this.depthVariance.setSelectedIndex(3);
|
||||
}
|
||||
else if(variance == -2) {
|
||||
this.depthVariance.setSelectedIndex(4);
|
||||
}
|
||||
|
||||
int tunnelQuantity = bean.getTunnelQuantity(tunnelNumber, 2) - 1;
|
||||
if(tunnelQuantity >= 0 && tunnelQuantity <= 2) {
|
||||
this.tunnelCount.setSelectedIndex(tunnelQuantity);
|
||||
}
|
||||
|
||||
int backupTunnelQuantity = bean.getTunnelBackupQuantity(tunnelNumber, 0);
|
||||
if(backupTunnelQuantity >= 0 && backupTunnelQuantity <= 3) {
|
||||
this.backupTunnelCount.setSelectedIndex(backupTunnelQuantity);
|
||||
}
|
||||
|
||||
|
||||
if(bean.getTunnelType(tunnelNumber).equals(TYPE_STREAMR_CLIENT)) {
|
||||
this.reduceIdle.setVisible(false);
|
||||
this.closeIdle.setVisible(false);
|
||||
this.delayIdle.setVisible(false);
|
||||
}
|
||||
else {
|
||||
this.reduceIdle.setSelected(bean.getReduce(tunnelNumber));
|
||||
this.closeIdle.setSelected(bean.getClose(tunnelNumber));
|
||||
this.delayIdle.setSelected(bean.getDelayOpen(tunnelNumber));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** This method is called from within the constructor to
|
||||
* initialize the form.
|
||||
* WARNING: Do NOT modify this code. The content of this method is
|
||||
* always regenerated by the Form Editor.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||
private void initComponents() {
|
||||
|
||||
tunnelNameLabel = new javax.swing.JLabel();
|
||||
tunnelTypeLabel = new javax.swing.JLabel();
|
||||
tunnelPortLabel = new javax.swing.JLabel();
|
||||
tunnelDestinationLabel = new javax.swing.JLabel();
|
||||
tunnelProfileLabel = new javax.swing.JLabel();
|
||||
delayConnect = new javax.swing.JCheckBox();
|
||||
sharedClient = new javax.swing.JCheckBox();
|
||||
autoStart = new javax.swing.JCheckBox();
|
||||
jSeparator1 = new javax.swing.JSeparator();
|
||||
tunnelDepthLabel = new javax.swing.JLabel();
|
||||
depthVarianceLabel = new javax.swing.JLabel();
|
||||
tunnelCountLabel = new javax.swing.JLabel();
|
||||
backupTunnelCountLabel = new javax.swing.JLabel();
|
||||
jSeparator2 = new javax.swing.JSeparator();
|
||||
reduceIdle = new javax.swing.JCheckBox();
|
||||
closeIdle = new javax.swing.JCheckBox();
|
||||
delayIdle = new javax.swing.JCheckBox();
|
||||
jSeparator3 = new javax.swing.JSeparator();
|
||||
save = new javax.swing.JButton();
|
||||
cancel = new javax.swing.JButton();
|
||||
tunnelName = new javax.swing.JTextField();
|
||||
tunnelType = new javax.swing.JLabel();
|
||||
tunnelPort = new javax.swing.JTextField();
|
||||
tunnelDestination = new javax.swing.JTextField();
|
||||
tunnelProfile = new javax.swing.JComboBox();
|
||||
tunnelDepth = new javax.swing.JComboBox();
|
||||
depthVariance = new javax.swing.JComboBox();
|
||||
tunnelCount = new javax.swing.JComboBox();
|
||||
backupTunnelCount = new javax.swing.JComboBox();
|
||||
changeTunnelState = new javax.swing.JButton();
|
||||
|
||||
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
|
||||
org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(net.i2p.desktopgui.desktopgui.Main.class).getContext().getResourceMap(ClientTunnelWindow.class);
|
||||
setTitle(resourceMap.getString("Form.title")); // NOI18N
|
||||
setName("Form"); // NOI18N
|
||||
getContentPane().setLayout(null);
|
||||
|
||||
tunnelNameLabel.setText(resourceMap.getString("tunnelNameLabel.text")); // NOI18N
|
||||
tunnelNameLabel.setName("tunnelNameLabel"); // NOI18N
|
||||
getContentPane().add(tunnelNameLabel);
|
||||
tunnelNameLabel.setBounds(20, 20, 120, 17);
|
||||
|
||||
tunnelTypeLabel.setText(resourceMap.getString("tunnelTypeLabel.text")); // NOI18N
|
||||
tunnelTypeLabel.setName("tunnelTypeLabel"); // NOI18N
|
||||
getContentPane().add(tunnelTypeLabel);
|
||||
tunnelTypeLabel.setBounds(20, 50, 120, 17);
|
||||
|
||||
tunnelPortLabel.setText(resourceMap.getString("tunnelPortLabel.text")); // NOI18N
|
||||
tunnelPortLabel.setName("tunnelPortLabel"); // NOI18N
|
||||
getContentPane().add(tunnelPortLabel);
|
||||
tunnelPortLabel.setBounds(20, 80, 110, 17);
|
||||
|
||||
tunnelDestinationLabel.setText(resourceMap.getString("tunnelDestinationLabel.text")); // NOI18N
|
||||
tunnelDestinationLabel.setName("tunnelDestinationLabel"); // NOI18N
|
||||
getContentPane().add(tunnelDestinationLabel);
|
||||
tunnelDestinationLabel.setBounds(20, 110, 110, 17);
|
||||
|
||||
tunnelProfileLabel.setText(resourceMap.getString("tunnelProfileLabel.text")); // NOI18N
|
||||
tunnelProfileLabel.setName("tunnelProfileLabel"); // NOI18N
|
||||
getContentPane().add(tunnelProfileLabel);
|
||||
tunnelProfileLabel.setBounds(20, 140, 110, 17);
|
||||
|
||||
delayConnect.setText(resourceMap.getString("delayConnect.text")); // NOI18N
|
||||
delayConnect.setName("delayConnect"); // NOI18N
|
||||
getContentPane().add(delayConnect);
|
||||
delayConnect.setBounds(20, 170, 160, 22);
|
||||
|
||||
sharedClient.setText(resourceMap.getString("sharedClient.text")); // NOI18N
|
||||
sharedClient.setName("sharedClient"); // NOI18N
|
||||
getContentPane().add(sharedClient);
|
||||
sharedClient.setBounds(20, 200, 160, 22);
|
||||
|
||||
autoStart.setText(resourceMap.getString("autoStart.text")); // NOI18N
|
||||
autoStart.setName("autoStart"); // NOI18N
|
||||
getContentPane().add(autoStart);
|
||||
autoStart.setBounds(20, 230, 160, 22);
|
||||
|
||||
jSeparator1.setName("jSeparator1"); // NOI18N
|
||||
getContentPane().add(jSeparator1);
|
||||
jSeparator1.setBounds(0, 510, 750, 10);
|
||||
|
||||
tunnelDepthLabel.setText(resourceMap.getString("tunnelDepthLabel.text")); // NOI18N
|
||||
tunnelDepthLabel.setName("tunnelDepthLabel"); // NOI18N
|
||||
getContentPane().add(tunnelDepthLabel);
|
||||
tunnelDepthLabel.setBounds(20, 280, 160, 17);
|
||||
|
||||
depthVarianceLabel.setText(resourceMap.getString("depthVarianceLabel.text")); // NOI18N
|
||||
depthVarianceLabel.setName("depthVarianceLabel"); // NOI18N
|
||||
getContentPane().add(depthVarianceLabel);
|
||||
depthVarianceLabel.setBounds(20, 310, 160, 17);
|
||||
|
||||
tunnelCountLabel.setText(resourceMap.getString("tunnelCountLabel.text")); // NOI18N
|
||||
tunnelCountLabel.setName("tunnelCountLabel"); // NOI18N
|
||||
getContentPane().add(tunnelCountLabel);
|
||||
tunnelCountLabel.setBounds(20, 340, 160, 17);
|
||||
|
||||
backupTunnelCountLabel.setText(resourceMap.getString("backupTunnelCountLabel.text")); // NOI18N
|
||||
backupTunnelCountLabel.setName("backupTunnelCountLabel"); // NOI18N
|
||||
getContentPane().add(backupTunnelCountLabel);
|
||||
backupTunnelCountLabel.setBounds(20, 370, 170, 17);
|
||||
|
||||
jSeparator2.setName("jSeparator2"); // NOI18N
|
||||
getContentPane().add(jSeparator2);
|
||||
jSeparator2.setBounds(0, 260, 750, 10);
|
||||
|
||||
reduceIdle.setText(resourceMap.getString("reduceIdle.text")); // NOI18N
|
||||
reduceIdle.setName("reduceIdle"); // NOI18N
|
||||
getContentPane().add(reduceIdle);
|
||||
reduceIdle.setBounds(20, 420, 300, 22);
|
||||
|
||||
closeIdle.setText(resourceMap.getString("closeIdle.text")); // NOI18N
|
||||
closeIdle.setName("closeIdle"); // NOI18N
|
||||
getContentPane().add(closeIdle);
|
||||
closeIdle.setBounds(20, 450, 370, 22);
|
||||
|
||||
delayIdle.setText(resourceMap.getString("delayIdle.text")); // NOI18N
|
||||
delayIdle.setName("delayIdle"); // NOI18N
|
||||
getContentPane().add(delayIdle);
|
||||
delayIdle.setBounds(20, 480, 400, 22);
|
||||
|
||||
jSeparator3.setName("jSeparator3"); // NOI18N
|
||||
getContentPane().add(jSeparator3);
|
||||
jSeparator3.setBounds(0, 400, 760, 10);
|
||||
|
||||
save.setText(resourceMap.getString("save.text")); // NOI18N
|
||||
save.setName("save"); // NOI18N
|
||||
save.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
saveActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
getContentPane().add(save);
|
||||
save.setBounds(10, 520, 44, 29);
|
||||
|
||||
cancel.setText(resourceMap.getString("cancel.text")); // NOI18N
|
||||
cancel.setName("cancel"); // NOI18N
|
||||
cancel.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
cancelActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
getContentPane().add(cancel);
|
||||
cancel.setBounds(60, 520, 55, 29);
|
||||
|
||||
tunnelName.setText(resourceMap.getString("tunnelName.text")); // NOI18N
|
||||
tunnelName.setName("tunnelName"); // NOI18N
|
||||
getContentPane().add(tunnelName);
|
||||
tunnelName.setBounds(200, 20, 340, 27);
|
||||
|
||||
tunnelType.setText(resourceMap.getString("tunnelType.text")); // NOI18N
|
||||
tunnelType.setName("tunnelType"); // NOI18N
|
||||
getContentPane().add(tunnelType);
|
||||
tunnelType.setBounds(200, 50, 340, 20);
|
||||
|
||||
tunnelPort.setText(resourceMap.getString("tunnelPort.text")); // NOI18N
|
||||
tunnelPort.setName("tunnelPort"); // NOI18N
|
||||
getContentPane().add(tunnelPort);
|
||||
tunnelPort.setBounds(200, 70, 340, 27);
|
||||
|
||||
tunnelDestination.setText(resourceMap.getString("tunnelDestination.text")); // NOI18N
|
||||
tunnelDestination.setName("tunnelDestination"); // NOI18N
|
||||
getContentPane().add(tunnelDestination);
|
||||
tunnelDestination.setBounds(200, 100, 340, 27);
|
||||
|
||||
tunnelProfile.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Interactive connection (Instant messaging)", "Bulk connection (Downloads, websites...)" }));
|
||||
tunnelProfile.setName("tunnelProfile"); // NOI18N
|
||||
getContentPane().add(tunnelProfile);
|
||||
tunnelProfile.setBounds(200, 130, 340, 27);
|
||||
|
||||
tunnelDepth.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "0 hop tunnel (no anonymity, low latency)", "1 hop tunnel (low anonymity, low latency)", "2 hop tunnel (medium anonymity, medium latency)", "3 hop tunnel (high anonymity, high latency)" }));
|
||||
tunnelDepth.setName("tunnelDepth"); // NOI18N
|
||||
getContentPane().add(tunnelDepth);
|
||||
tunnelDepth.setBounds(200, 280, 350, 27);
|
||||
|
||||
depthVariance.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "0 hop variance (no random, good performance)", "+ 0-1 hop variance (slightly random, lower performance)", "+ 0-2 hop variance (very random, lower performance)", "+/- 0-1 hop variance (slightly random, standard performance)", "+/- 0-2 hop variance (not recommended)" }));
|
||||
depthVariance.setName("depthVariance"); // NOI18N
|
||||
getContentPane().add(depthVariance);
|
||||
depthVariance.setBounds(200, 310, 350, 27);
|
||||
|
||||
tunnelCount.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "1 tunnel (low bandwidth usage, low reliability)", "2 tunnels (standard bandwidth usage, standard reliability)", "3 tunnels (high bandwidth usage, high reliability)" }));
|
||||
tunnelCount.setName("tunnelCount"); // NOI18N
|
||||
getContentPane().add(tunnelCount);
|
||||
tunnelCount.setBounds(200, 340, 350, 27);
|
||||
|
||||
backupTunnelCount.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "0 backup tunnels (no redundancy, no resource usage)", "1 backup tunnel (low redundancy, low resource usage)", "2 backup tunnels (medium redundancy, medium resource usage)", "3 backup tunnels (high redundancy, high resource usage)" }));
|
||||
backupTunnelCount.setName("backupTunnelCount"); // NOI18N
|
||||
getContentPane().add(backupTunnelCount);
|
||||
backupTunnelCount.setBounds(200, 370, 350, 27);
|
||||
|
||||
changeTunnelState.setText(resourceMap.getString("changeTunnelState.text")); // NOI18N
|
||||
changeTunnelState.setName("changeTunnelState"); // NOI18N
|
||||
getContentPane().add(changeTunnelState);
|
||||
changeTunnelState.setBounds(160, 520, 150, 29);
|
||||
|
||||
pack();
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
private void saveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveActionPerformed
|
||||
EditBean bean = new EditBean();
|
||||
if(!bean.isClient(tunnelNumber)) {
|
||||
al.actionPerformed(evt);
|
||||
this.dispose();
|
||||
}
|
||||
else {
|
||||
bean.setTunnel("" + tunnelNumber);
|
||||
bean.setName(tunnelName.getText());
|
||||
bean.setPort(tunnelPort.getText());
|
||||
bean.setTargetDestination(tunnelDestination.getText());
|
||||
if(!bean.getTunnelType(tunnelNumber).equals(TYPE_STREAMR_CLIENT)) {
|
||||
if(tunnelProfile.getSelectedIndex() == TUNNEL_INTERACTIVE) {
|
||||
bean.setProfile("interactive");
|
||||
}
|
||||
else {
|
||||
bean.setProfile("bulk");
|
||||
}
|
||||
|
||||
if(delayConnect.isSelected()) {
|
||||
bean.setConnectDelay("true");
|
||||
}
|
||||
else {
|
||||
bean.setConnectDelay("false");
|
||||
}
|
||||
|
||||
if(sharedClient.isSelected()) {
|
||||
bean.setShared(true);
|
||||
}
|
||||
else {
|
||||
bean.setShared(false);
|
||||
}
|
||||
|
||||
if(autoStart.isSelected()) {
|
||||
bean.setStartOnLoad("true");
|
||||
}
|
||||
else {
|
||||
}
|
||||
}
|
||||
bean.setTunnelDepth("" + tunnelDepth.getSelectedIndex());
|
||||
|
||||
int variance = depthVariance.getSelectedIndex();
|
||||
if(variance >= 0 && variance <= 2) {
|
||||
bean.setTunnelVariance("" + variance);
|
||||
}
|
||||
else if(variance == 3) {
|
||||
bean.setTunnelVariance("-1");
|
||||
}
|
||||
else if(variance == 4) {
|
||||
bean.setTunnelVariance("-2");
|
||||
}
|
||||
|
||||
bean.setTunnelQuantity("" + tunnelCount.getSelectedIndex() + 1);
|
||||
|
||||
bean.setTunnelBackupQuantity("" + backupTunnelCount.getSelectedIndex());
|
||||
|
||||
if(!bean.getTunnelType(tunnelNumber).equals(TYPE_STREAMR_CLIENT)) {
|
||||
if(reduceIdle.isSelected()) {
|
||||
bean.setReduce("true");
|
||||
}
|
||||
else {
|
||||
}
|
||||
|
||||
if(closeIdle.isSelected()) {
|
||||
bean.setClose("true");
|
||||
}
|
||||
else {
|
||||
}
|
||||
|
||||
if(delayIdle.isSelected()) {
|
||||
bean.setDelayOpen("true");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
al.actionPerformed(evt);
|
||||
this.dispose();
|
||||
}//GEN-LAST:event_saveActionPerformed
|
||||
|
||||
private void cancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelActionPerformed
|
||||
al.actionPerformed(evt);
|
||||
this.dispose();
|
||||
}//GEN-LAST:event_cancelActionPerformed
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JCheckBox autoStart;
|
||||
private javax.swing.JComboBox backupTunnelCount;
|
||||
private javax.swing.JLabel backupTunnelCountLabel;
|
||||
private javax.swing.JButton cancel;
|
||||
private javax.swing.JButton changeTunnelState;
|
||||
private javax.swing.JCheckBox closeIdle;
|
||||
private javax.swing.JCheckBox delayConnect;
|
||||
private javax.swing.JCheckBox delayIdle;
|
||||
private javax.swing.JComboBox depthVariance;
|
||||
private javax.swing.JLabel depthVarianceLabel;
|
||||
private javax.swing.JSeparator jSeparator1;
|
||||
private javax.swing.JSeparator jSeparator2;
|
||||
private javax.swing.JSeparator jSeparator3;
|
||||
private javax.swing.JCheckBox reduceIdle;
|
||||
private javax.swing.JButton save;
|
||||
private javax.swing.JCheckBox sharedClient;
|
||||
private javax.swing.JComboBox tunnelCount;
|
||||
private javax.swing.JLabel tunnelCountLabel;
|
||||
private javax.swing.JComboBox tunnelDepth;
|
||||
private javax.swing.JLabel tunnelDepthLabel;
|
||||
private javax.swing.JTextField tunnelDestination;
|
||||
private javax.swing.JLabel tunnelDestinationLabel;
|
||||
private javax.swing.JTextField tunnelName;
|
||||
private javax.swing.JLabel tunnelNameLabel;
|
||||
private javax.swing.JTextField tunnelPort;
|
||||
private javax.swing.JLabel tunnelPortLabel;
|
||||
private javax.swing.JComboBox tunnelProfile;
|
||||
private javax.swing.JLabel tunnelProfileLabel;
|
||||
private javax.swing.JLabel tunnelType;
|
||||
private javax.swing.JLabel tunnelTypeLabel;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
private int tunnelNumber;
|
||||
private ActionListener al;
|
||||
private static final int TUNNEL_INTERACTIVE = 0;
|
||||
private static final int TUNNEL_BULK = 1;
|
||||
private static final String TYPE_STREAMR_CLIENT = "Streamr client";
|
||||
}
|
@ -322,14 +322,14 @@
|
||||
</Group>
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<EmptySpace min="40" pref="40" max="40" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="updateDownload" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="updateInform" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="updateDownloadRestart" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" max="-2" attributes="0">
|
||||
<Component id="updateInform" alignment="0" pref="377" max="32767" attributes="1"/>
|
||||
<Component id="updateDownload" alignment="0" max="32767" attributes="1"/>
|
||||
<Component id="updateDownloadRestart" alignment="0" max="32767" attributes="1"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
<EmptySpace min="-2" pref="9" max="-2" attributes="0"/>
|
||||
<EmptySpace min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<Group type="102" alignment="1" attributes="0">
|
||||
<EmptySpace pref="339" max="32767" attributes="0"/>
|
||||
@ -439,11 +439,11 @@
|
||||
<Layout>
|
||||
<DimensionLayout dim="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Group type="102" alignment="1" attributes="0">
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="serverFrame" alignment="1" pref="538" max="32767" attributes="0"/>
|
||||
<Group type="103" groupAlignment="1" attributes="0">
|
||||
<Component id="tunnelsExplanation" alignment="0" pref="538" max="32767" attributes="0"/>
|
||||
<Component id="serverFrame" alignment="1" pref="538" max="32767" attributes="0"/>
|
||||
<Component id="clientTunnelLabel" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="clientFrame" alignment="0" pref="538" max="32767" attributes="0"/>
|
||||
<Component id="serverTunnelLabel" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
@ -463,9 +463,9 @@
|
||||
<Component id="serverTunnelLabel" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace min="-2" max="-2" attributes="0"/>
|
||||
<Component id="serverFrame" pref="122" max="32767" attributes="0"/>
|
||||
<EmptySpace min="-2" max="-2" attributes="0"/>
|
||||
<Component id="tunnelsExplanation" min="-2" pref="65" max="-2" attributes="0"/>
|
||||
<EmptySpace min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="tunnelsExplanation" min="-2" pref="45" max="-2" attributes="0"/>
|
||||
<EmptySpace min="-2" pref="32" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
@ -477,6 +477,51 @@
|
||||
</Properties>
|
||||
|
||||
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
|
||||
<SubComponents>
|
||||
<Component class="javax.swing.JTable" name="clientTable">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
|
||||
<Table columnCount="4" rowCount="0">
|
||||
<Column editable="true" title="Name" type="java.lang.Object"/>
|
||||
<Column editable="true" title="Type" type="java.lang.Object"/>
|
||||
<Column editable="true" title="Address" type="java.lang.Object"/>
|
||||
<Column editable="true" title="Status" type="java.lang.Object"/>
|
||||
</Table>
|
||||
</Property>
|
||||
<Property name="columnModel" type="javax.swing.table.TableColumnModel" editor="org.netbeans.modules.form.editors2.TableColumnModelEditor">
|
||||
<TableColumnModel selectionModel="0">
|
||||
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
|
||||
<Title resourceKey="clientTable.columnModel.title0"/>
|
||||
<Editor/>
|
||||
<Renderer/>
|
||||
</Column>
|
||||
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
|
||||
<Title resourceKey="clientTable.columnModel.title1"/>
|
||||
<Editor/>
|
||||
<Renderer/>
|
||||
</Column>
|
||||
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
|
||||
<Title resourceKey="clientTable.columnModel.title2"/>
|
||||
<Editor/>
|
||||
<Renderer/>
|
||||
</Column>
|
||||
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
|
||||
<Title resourceKey="clientTable.columnModel.title3"/>
|
||||
<Editor/>
|
||||
<Renderer/>
|
||||
</Column>
|
||||
</TableColumnModel>
|
||||
</Property>
|
||||
<Property name="name" type="java.lang.String" value="clientTable" noResource="true"/>
|
||||
<Property name="tableHeader" type="javax.swing.table.JTableHeader" editor="org.netbeans.modules.form.editors2.JTableHeaderEditor">
|
||||
<TableHeader reorderingAllowed="true" resizingAllowed="true"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="clientTableMouseClicked"/>
|
||||
</Events>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Container>
|
||||
<Container class="javax.swing.JScrollPane" name="serverFrame">
|
||||
<Properties>
|
||||
@ -484,6 +529,45 @@
|
||||
</Properties>
|
||||
|
||||
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
|
||||
<SubComponents>
|
||||
<Component class="javax.swing.JTable" name="serverTable">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
|
||||
<Table columnCount="3" rowCount="4">
|
||||
<Column editable="true" title="Name" type="java.lang.Object"/>
|
||||
<Column editable="true" title="Address" type="java.lang.Object"/>
|
||||
<Column editable="true" title="Status" type="java.lang.Object"/>
|
||||
</Table>
|
||||
</Property>
|
||||
<Property name="columnModel" type="javax.swing.table.TableColumnModel" editor="org.netbeans.modules.form.editors2.TableColumnModelEditor">
|
||||
<TableColumnModel selectionModel="0">
|
||||
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
|
||||
<Title resourceKey="serverTable.columnModel.title0"/>
|
||||
<Editor/>
|
||||
<Renderer/>
|
||||
</Column>
|
||||
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
|
||||
<Title resourceKey="serverTable.columnModel.title1"/>
|
||||
<Editor/>
|
||||
<Renderer/>
|
||||
</Column>
|
||||
<Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true">
|
||||
<Title resourceKey="serverTable.columnModel.title2"/>
|
||||
<Editor/>
|
||||
<Renderer/>
|
||||
</Column>
|
||||
</TableColumnModel>
|
||||
</Property>
|
||||
<Property name="name" type="java.lang.String" value="serverTable" noResource="true"/>
|
||||
<Property name="tableHeader" type="javax.swing.table.JTableHeader" editor="org.netbeans.modules.form.editors2.JTableHeaderEditor">
|
||||
<TableHeader reorderingAllowed="true" resizingAllowed="true"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="serverTableMouseClicked"/>
|
||||
</Events>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Container>
|
||||
<Component class="javax.swing.JLabel" name="tunnelsExplanation">
|
||||
<Properties>
|
||||
|
@ -7,6 +7,7 @@
|
||||
package net.i2p.desktopgui.gui;
|
||||
|
||||
import java.awt.Desktop;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
@ -23,6 +24,9 @@ import net.i2p.router.web.NewsFetcher;
|
||||
import net.i2p.desktopgui.router.configuration.UpdateHandler;
|
||||
import java.util.Date;
|
||||
import javax.swing.SwingWorker;
|
||||
import net.i2p.i2ptunnel.web.IndexBean;
|
||||
import javax.swing.table.DefaultTableModel;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -43,6 +47,7 @@ public class GeneralConfiguration extends javax.swing.JFrame {
|
||||
private void extraInitComponents() {
|
||||
initSpeedTab();
|
||||
initUpdateTab();
|
||||
initTunnelTab();
|
||||
}
|
||||
|
||||
private void initSpeedTab() {
|
||||
@ -87,6 +92,48 @@ public class GeneralConfiguration extends javax.swing.JFrame {
|
||||
}
|
||||
}
|
||||
|
||||
private void initTunnelTab() {
|
||||
while(((DefaultTableModel) clientTable.getModel()).getRowCount() > 0) {
|
||||
((DefaultTableModel) clientTable.getModel()).removeRow(0);
|
||||
}
|
||||
while(((DefaultTableModel) serverTable.getModel()).getRowCount() > 0) {
|
||||
((DefaultTableModel) serverTable.getModel()).removeRow(0);
|
||||
}
|
||||
IndexBean bean = new IndexBean();
|
||||
for(int i=0; i<bean.getTunnelCount(); i++) {
|
||||
if(bean.isClient(i)) {
|
||||
Object[] row = {bean.getTunnelName(i), bean.getTunnelType(i),
|
||||
bean.getClientInterface(i) + ":" + bean.getClientPort(i),
|
||||
getTunnelStatus(bean.getTunnelStatus(i))};
|
||||
((DefaultTableModel) clientTable.getModel()).addRow(row);
|
||||
}
|
||||
else {
|
||||
Object[] row = {bean.getTunnelName(i),
|
||||
bean.getServerTarget(i),
|
||||
getTunnelStatus(bean.getTunnelStatus(i))};
|
||||
((DefaultTableModel) serverTable.getModel()).addRow(row);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String getTunnelStatus(int status) {
|
||||
if(status == IndexBean.NOT_RUNNING) {
|
||||
return "Not running";
|
||||
}
|
||||
else if(status == IndexBean.RUNNING) {
|
||||
return "Running";
|
||||
}
|
||||
else if(status == IndexBean.STANDBY) {
|
||||
return "Standby";
|
||||
}
|
||||
else if(status == IndexBean.STARTING) {
|
||||
return "Starting";
|
||||
}
|
||||
else {
|
||||
return "Error: status not found";
|
||||
}
|
||||
}
|
||||
|
||||
/** This method is called from within the constructor to
|
||||
* initialize the form.
|
||||
* WARNING: Do NOT modify this code. The content of this method is
|
||||
@ -125,7 +172,9 @@ public class GeneralConfiguration extends javax.swing.JFrame {
|
||||
advancedUpdateConfig = new javax.swing.JToggleButton();
|
||||
tunnelPanel = new javax.swing.JPanel();
|
||||
clientFrame = new javax.swing.JScrollPane();
|
||||
clientTable = new javax.swing.JTable();
|
||||
serverFrame = new javax.swing.JScrollPane();
|
||||
serverTable = new javax.swing.JTable();
|
||||
tunnelsExplanation = new javax.swing.JLabel();
|
||||
clientTunnelLabel = new javax.swing.JLabel();
|
||||
serverTunnelLabel = new javax.swing.JLabel();
|
||||
@ -334,11 +383,11 @@ public class GeneralConfiguration extends javax.swing.JFrame {
|
||||
.addComponent(updateNow))))
|
||||
.addGroup(updatesPanelLayout.createSequentialGroup()
|
||||
.addGap(40, 40, 40)
|
||||
.addGroup(updatesPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(updateDownload)
|
||||
.addComponent(updateInform)
|
||||
.addComponent(updateDownloadRestart))))
|
||||
.addGap(9, 9, 9))
|
||||
.addGroup(updatesPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
||||
.addComponent(updateInform, javax.swing.GroupLayout.DEFAULT_SIZE, 377, Short.MAX_VALUE)
|
||||
.addComponent(updateDownload, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(updateDownloadRestart, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
|
||||
.addContainerGap())
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, updatesPanelLayout.createSequentialGroup()
|
||||
.addContainerGap(339, Short.MAX_VALUE)
|
||||
.addComponent(advancedUpdateConfig)
|
||||
@ -370,8 +419,50 @@ public class GeneralConfiguration extends javax.swing.JFrame {
|
||||
|
||||
clientFrame.setName("clientFrame"); // NOI18N
|
||||
|
||||
clientTable.setModel(new javax.swing.table.DefaultTableModel(
|
||||
new Object [][] {
|
||||
|
||||
},
|
||||
new String [] {
|
||||
"Name", "Type", "Address", "Status"
|
||||
}
|
||||
));
|
||||
clientTable.setName("clientTable"); // NOI18N
|
||||
clientTable.addMouseListener(new java.awt.event.MouseAdapter() {
|
||||
public void mouseClicked(java.awt.event.MouseEvent evt) {
|
||||
clientTableMouseClicked(evt);
|
||||
}
|
||||
});
|
||||
clientFrame.setViewportView(clientTable);
|
||||
clientTable.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("clientTable.columnModel.title0")); // NOI18N
|
||||
clientTable.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("clientTable.columnModel.title1")); // NOI18N
|
||||
clientTable.getColumnModel().getColumn(2).setHeaderValue(resourceMap.getString("clientTable.columnModel.title2")); // NOI18N
|
||||
clientTable.getColumnModel().getColumn(3).setHeaderValue(resourceMap.getString("clientTable.columnModel.title3")); // NOI18N
|
||||
|
||||
serverFrame.setName("serverFrame"); // NOI18N
|
||||
|
||||
serverTable.setModel(new javax.swing.table.DefaultTableModel(
|
||||
new Object [][] {
|
||||
{null, null, null},
|
||||
{null, null, null},
|
||||
{null, null, null},
|
||||
{null, null, null}
|
||||
},
|
||||
new String [] {
|
||||
"Name", "Address", "Status"
|
||||
}
|
||||
));
|
||||
serverTable.setName("serverTable"); // NOI18N
|
||||
serverTable.addMouseListener(new java.awt.event.MouseAdapter() {
|
||||
public void mouseClicked(java.awt.event.MouseEvent evt) {
|
||||
serverTableMouseClicked(evt);
|
||||
}
|
||||
});
|
||||
serverFrame.setViewportView(serverTable);
|
||||
serverTable.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("serverTable.columnModel.title0")); // NOI18N
|
||||
serverTable.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("serverTable.columnModel.title1")); // NOI18N
|
||||
serverTable.getColumnModel().getColumn(2).setHeaderValue(resourceMap.getString("serverTable.columnModel.title2")); // NOI18N
|
||||
|
||||
tunnelsExplanation.setText(resourceMap.getString("tunnelsExplanation.text")); // NOI18N
|
||||
tunnelsExplanation.setName("tunnelsExplanation"); // NOI18N
|
||||
|
||||
@ -385,14 +476,14 @@ public class GeneralConfiguration extends javax.swing.JFrame {
|
||||
tunnelPanel.setLayout(tunnelPanelLayout);
|
||||
tunnelPanelLayout.setHorizontalGroup(
|
||||
tunnelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(tunnelPanelLayout.createSequentialGroup()
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tunnelPanelLayout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(tunnelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(serverFrame, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 538, Short.MAX_VALUE)
|
||||
.addComponent(tunnelsExplanation, javax.swing.GroupLayout.DEFAULT_SIZE, 538, Short.MAX_VALUE)
|
||||
.addComponent(clientTunnelLabel)
|
||||
.addComponent(clientFrame, javax.swing.GroupLayout.DEFAULT_SIZE, 538, Short.MAX_VALUE)
|
||||
.addComponent(serverTunnelLabel))
|
||||
.addGroup(tunnelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addComponent(tunnelsExplanation, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 538, Short.MAX_VALUE)
|
||||
.addComponent(serverFrame, javax.swing.GroupLayout.DEFAULT_SIZE, 538, Short.MAX_VALUE)
|
||||
.addComponent(clientTunnelLabel, javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(clientFrame, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 538, Short.MAX_VALUE)
|
||||
.addComponent(serverTunnelLabel, javax.swing.GroupLayout.Alignment.LEADING))
|
||||
.addContainerGap())
|
||||
);
|
||||
tunnelPanelLayout.setVerticalGroup(
|
||||
@ -407,8 +498,8 @@ public class GeneralConfiguration extends javax.swing.JFrame {
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(serverFrame, javax.swing.GroupLayout.DEFAULT_SIZE, 122, Short.MAX_VALUE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(tunnelsExplanation, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addContainerGap())
|
||||
.addComponent(tunnelsExplanation, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGap(32, 32, 32))
|
||||
);
|
||||
|
||||
settingsPanel.addTab(resourceMap.getString("tunnelPanel.TabConstraints.tabTitle"), tunnelPanel); // NOI18N
|
||||
@ -584,6 +675,68 @@ private void advancedUpdateConfigActionPerformed(java.awt.event.ActionEvent evt)
|
||||
}
|
||||
}//GEN-LAST:event_advancedUpdateConfigActionPerformed
|
||||
|
||||
private void clientTableMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_clientTableMouseClicked
|
||||
int row = clientTable.getSelectedRow();
|
||||
if(row == -1) { //No selected row
|
||||
return;
|
||||
}
|
||||
else {
|
||||
IndexBean bean = new IndexBean();
|
||||
/*
|
||||
* TODO: This is not entirely good: if one adds/removes a tunnel without desktopgui, this number will be wrong
|
||||
*/
|
||||
int clientNumber = 0;
|
||||
int i = 0;
|
||||
for(clientNumber=0; clientNumber<bean.getTunnelCount(); clientNumber++) {
|
||||
if(bean.isClient(clientNumber)) {
|
||||
if(i == row) {
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
new ClientTunnelWindow(clientNumber, new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
initTunnelTab();
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}//GEN-LAST:event_clientTableMouseClicked
|
||||
|
||||
private void serverTableMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_serverTableMouseClicked
|
||||
int row = serverTable.getSelectedRow();
|
||||
if(row == -1) { //No selected row
|
||||
return;
|
||||
}
|
||||
else {
|
||||
IndexBean bean = new IndexBean();
|
||||
/*
|
||||
* TODO: This is not entirely good: if one adds/removes a tunnel without desktopgui, this number will be wrong
|
||||
*/
|
||||
int serverNumber = 0;
|
||||
int i = 0;
|
||||
for(serverNumber=0; serverNumber<bean.getTunnelCount(); serverNumber++) {
|
||||
if(!bean.isClient(serverNumber)) {
|
||||
if(i == row) {
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
new ServerTunnelWindow(serverNumber, new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
initTunnelTab();
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}//GEN-LAST:event_serverTableMouseClicked
|
||||
|
||||
protected void initUsage(String upload, String download) {
|
||||
uploadgb.setText("" + SpeedHelper.calculateMonthlyUsage(Integer.parseInt(upload)));
|
||||
downloadgb.setText("" + SpeedHelper.calculateMonthlyUsage(Integer.parseInt(download)));
|
||||
@ -646,6 +799,7 @@ private void advancedUpdateConfigActionPerformed(java.awt.event.ActionEvent evt)
|
||||
private javax.swing.JToggleButton cancel;
|
||||
private javax.swing.JToggleButton checkUpdates;
|
||||
private javax.swing.JScrollPane clientFrame;
|
||||
private javax.swing.JTable clientTable;
|
||||
private javax.swing.JLabel clientTunnelLabel;
|
||||
private javax.swing.JLabel downloadSpeedLabel;
|
||||
private javax.swing.JLabel downloadUsageLabel;
|
||||
@ -657,6 +811,7 @@ private void advancedUpdateConfigActionPerformed(java.awt.event.ActionEvent evt)
|
||||
private javax.swing.JPanel networkPanel;
|
||||
private javax.swing.JToggleButton ok;
|
||||
private javax.swing.JScrollPane serverFrame;
|
||||
private javax.swing.JTable serverTable;
|
||||
private javax.swing.JLabel serverTunnelLabel;
|
||||
private javax.swing.JTabbedPane settingsPanel;
|
||||
private javax.swing.JPanel speedPanel;
|
||||
|
@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<Form version="1.5" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
|
||||
<Properties>
|
||||
<Property name="defaultCloseOperation" type="int" value="3"/>
|
||||
<Property name="name" type="java.lang.String" value="Form" noResource="true"/>
|
||||
</Properties>
|
||||
<SyntheticProperties>
|
||||
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
|
||||
</SyntheticProperties>
|
||||
<AuxValues>
|
||||
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="2"/>
|
||||
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="true"/>
|
||||
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
|
||||
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
|
||||
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
|
||||
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
|
||||
<AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,44,0,0,1,-112"/>
|
||||
</AuxValues>
|
||||
|
||||
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout">
|
||||
<Property name="useNullLayout" type="boolean" value="true"/>
|
||||
</Layout>
|
||||
<SubComponents>
|
||||
<Component class="javax.swing.JLabel" name="jLabel1">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" resourceKey="jLabel1.text"/>
|
||||
<Property name="name" type="java.lang.String" value="jLabel1" noResource="true"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="10" y="10" width="-1" height="-1"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Form>
|
@ -0,0 +1,60 @@
|
||||
/*
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ServerTunnelWindow.java
|
||||
*
|
||||
* Created on 11-jun-2009, 14:55:53
|
||||
*/
|
||||
|
||||
package net.i2p.desktopgui.gui;
|
||||
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author mathias
|
||||
*/
|
||||
public class ServerTunnelWindow extends javax.swing.JFrame {
|
||||
|
||||
/** Creates new form ServerTunnelWindow */
|
||||
public ServerTunnelWindow(int tunnelNumber, ActionListener al) {
|
||||
initComponents();
|
||||
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
|
||||
this.setSize(600, 600);
|
||||
this.setLocationRelativeTo(null);
|
||||
this.requestFocus();
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
/** This method is called from within the constructor to
|
||||
* initialize the form.
|
||||
* WARNING: Do NOT modify this code. The content of this method is
|
||||
* always regenerated by the Form Editor.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||
private void initComponents() {
|
||||
|
||||
jLabel1 = new javax.swing.JLabel();
|
||||
|
||||
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
|
||||
setName("Form"); // NOI18N
|
||||
getContentPane().setLayout(null);
|
||||
|
||||
org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(net.i2p.desktopgui.desktopgui.Main.class).getContext().getResourceMap(ServerTunnelWindow.class);
|
||||
jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N
|
||||
jLabel1.setName("jLabel1"); // NOI18N
|
||||
getContentPane().add(jLabel1);
|
||||
jLabel1.setBounds(10, 10, 43, 17);
|
||||
|
||||
pack();
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JLabel jLabel1;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
# To change this template, choose Tools | Templates
|
||||
# and open the template in the editor.
|
||||
|
||||
Form.title=Client Tunnel Configuration
|
||||
tunnelNameLabel.text=Name:
|
||||
tunnelTypeLabel.text=Type:
|
||||
tunnelType.text=jLabel10
|
||||
tunnelName.text=jTextField1
|
||||
tunnelPortLabel.text=Port:
|
||||
tunnelPort.text=jTextField2
|
||||
tunnelDestination.text=jTextField3
|
||||
tunnelDestinationLabel.text=Destination:
|
||||
tunnelProfileLabel.text=Profile:
|
||||
delayConnect.text=Delay connect
|
||||
sharedClient.text=Shared client
|
||||
autoStart.text=Auto start
|
||||
tunnelDepthLabel.text=Tunnel depth:
|
||||
depthVarianceLabel.text=Depth variance:
|
||||
tunnelCountLabel.text=Tunnel count:
|
||||
backupTunnelCountLabel.text=Backup tunnel count:
|
||||
reduceIdle.text=Reduce tunnel count when idle
|
||||
closeIdle.text=Close tunnels when idle
|
||||
delayIdle.text=Delay opening of tunnels when idle
|
||||
save.text=Save
|
||||
cancel.text=Cancel
|
||||
changeTunnelState.text=Start Tunnel
|
@ -13,7 +13,7 @@ downloadspeed.text=jTextField2
|
||||
uploadgb.text=jTextField3
|
||||
downloadgb.text=jTextField4
|
||||
updateMethod.text=What is your preferred automatic update setting?
|
||||
updateInform.text=Only inform about updates
|
||||
updateInform.text=Only inform about updates (not advised)
|
||||
updateDownload.text=Download and verify update file, do not restart
|
||||
updateDownloadRestart.text=Download, verify and restart
|
||||
checkUpdates.text=Check for updates now
|
||||
@ -21,9 +21,17 @@ updateNow.text=Update available: update now
|
||||
advancedUpdateConfig.text=Advanced update configuration
|
||||
clientTunnelLabel.text=Client tunnels:
|
||||
serverTunnelLabel.text=Server tunnels:
|
||||
tunnelsExplanation.text=Tunnel explanation
|
||||
tunnelsExplanation.text=Click on a tunnel to view and change its configuration. + Tunnel explanation
|
||||
uploadUsageLabel.text=Monthly usage:
|
||||
downloadUsageLabel.text=Monthly usage:
|
||||
gbUploadLabel.text=GB
|
||||
gbDownloadLabel.text=GB
|
||||
uploadDownloadExplanation.text=Explanation ...
|
||||
clientTable.columnModel.title3=Status
|
||||
clientTable.columnModel.title2=Address
|
||||
clientTable.columnModel.title1=Type
|
||||
clientTable.columnModel.title0=Name
|
||||
serverTable.columnModel.title0=Name
|
||||
serverTable.columnModel.title3=Title 4
|
||||
serverTable.columnModel.title2=Status
|
||||
serverTable.columnModel.title1=Address
|
||||
|
@ -0,0 +1 @@
|
||||
jLabel1.text=Name:
|
@ -1,3 +1,8 @@
|
||||
2009-06-17 Mathiasdm
|
||||
* desktopgui:
|
||||
- Added client and server tunnel view
|
||||
(saving does not work yet)
|
||||
|
||||
2009-06-17 zzz
|
||||
* PeerSelector:
|
||||
- Limit exploratory tunnels to connected peers when over
|
||||
|
Reference in New Issue
Block a user