mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 10:18:01 +00:00
Fixed compatibility with Java 7.
Problem was due to inability to deserialize display_new_layout.xml. I changed that file's default serializer to XStream. This fix maintains compatibility with existing display_new_layout.xml when possible, and uses an XStream-generated display_layout.xml when it cannot parse the former. Note this updates the default display_layout.xml, which looks OK under Windows XP with resolution 1024x768. Bug: 144
This commit is contained in:
@@ -1,519 +1,288 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<java version="1.6.0_26" class="java.beans.XMLDecoder">
|
||||
<object id="MultiSplitLayout$Split0" class="org.jdesktop.swingx.MultiSplitLayout$Split">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>0</int>
|
||||
<int>0</int>
|
||||
<int>1024</int>
|
||||
<int>687</int>
|
||||
</object>
|
||||
</void>
|
||||
<void id="ArrayList0" property="children">
|
||||
<void method="add">
|
||||
<object id="MultiSplitLayout$Split1" class="org.jdesktop.swingx.MultiSplitLayout$Split">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>0</int>
|
||||
<int>0</int>
|
||||
<int>197</int>
|
||||
<int>687</int>
|
||||
</object>
|
||||
</void>
|
||||
<void id="ArrayList1" property="children">
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Leaf">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>0</int>
|
||||
<int>0</int>
|
||||
<int>197</int>
|
||||
<int>130</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="name">
|
||||
<string>info</string>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split1"/>
|
||||
</void>
|
||||
<void property="weight">
|
||||
<double>0.2</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Divider">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>0</int>
|
||||
<int>130</int>
|
||||
<int>197</int>
|
||||
<int>5</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split1"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Leaf">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>0</int>
|
||||
<int>135</int>
|
||||
<int>197</int>
|
||||
<int>146</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="name">
|
||||
<string>compy</string>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split1"/>
|
||||
</void>
|
||||
<void property="weight">
|
||||
<double>0.2</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Divider">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>0</int>
|
||||
<int>281</int>
|
||||
<int>197</int>
|
||||
<int>5</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split1"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Leaf">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>0</int>
|
||||
<int>286</int>
|
||||
<int>197</int>
|
||||
<int>104</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="name">
|
||||
<string>stack</string>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split1"/>
|
||||
</void>
|
||||
<void property="weight">
|
||||
<double>0.2</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Divider">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>0</int>
|
||||
<int>390</int>
|
||||
<int>197</int>
|
||||
<int>5</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split1"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Leaf">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>0</int>
|
||||
<int>395</int>
|
||||
<int>197</int>
|
||||
<int>136</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="name">
|
||||
<string>combat</string>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split1"/>
|
||||
</void>
|
||||
<void property="weight">
|
||||
<double>0.2</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Divider">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>0</int>
|
||||
<int>531</int>
|
||||
<int>197</int>
|
||||
<int>5</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split1"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Leaf">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>0</int>
|
||||
<int>536</int>
|
||||
<int>197</int>
|
||||
<int>151</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="name">
|
||||
<string>human</string>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split1"/>
|
||||
</void>
|
||||
<void property="weight">
|
||||
<double>0.2</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
</void>
|
||||
<void property="children">
|
||||
<object idref="ArrayList1"/>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split0"/>
|
||||
</void>
|
||||
<void property="rowLayout">
|
||||
<boolean>false</boolean>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Divider">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>197</int>
|
||||
<int>0</int>
|
||||
<int>5</int>
|
||||
<int>687</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split0"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object id="MultiSplitLayout$Split2" class="org.jdesktop.swingx.MultiSplitLayout$Split">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>202</int>
|
||||
<int>0</int>
|
||||
<int>566</int>
|
||||
<int>687</int>
|
||||
</object>
|
||||
</void>
|
||||
<void id="ArrayList2" property="children">
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Leaf">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>202</int>
|
||||
<int>0</int>
|
||||
<int>566</int>
|
||||
<int>1</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="name">
|
||||
<string>compyLand</string>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split2"/>
|
||||
</void>
|
||||
<void property="weight">
|
||||
<double>0.2</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Divider">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>202</int>
|
||||
<int>1</int>
|
||||
<int>566</int>
|
||||
<int>5</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split2"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Leaf">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>202</int>
|
||||
<int>6</int>
|
||||
<int>566</int>
|
||||
<int>282</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="name">
|
||||
<string>compyPlay</string>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split2"/>
|
||||
</void>
|
||||
<void property="weight">
|
||||
<double>0.2</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Divider">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>202</int>
|
||||
<int>288</int>
|
||||
<int>566</int>
|
||||
<int>5</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split2"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Leaf">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>202</int>
|
||||
<int>293</int>
|
||||
<int>566</int>
|
||||
<int>277</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="name">
|
||||
<string>humanPlay</string>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split2"/>
|
||||
</void>
|
||||
<void property="weight">
|
||||
<double>0.2</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Divider">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>202</int>
|
||||
<int>570</int>
|
||||
<int>566</int>
|
||||
<int>5</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split2"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Leaf">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>202</int>
|
||||
<int>575</int>
|
||||
<int>566</int>
|
||||
<int>1</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="name">
|
||||
<string>humanLand</string>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split2"/>
|
||||
</void>
|
||||
<void property="weight">
|
||||
<double>0.2</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Divider">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>202</int>
|
||||
<int>576</int>
|
||||
<int>566</int>
|
||||
<int>5</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split2"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Leaf">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>202</int>
|
||||
<int>581</int>
|
||||
<int>566</int>
|
||||
<int>106</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="name">
|
||||
<string>humanHand</string>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split2"/>
|
||||
</void>
|
||||
<void property="weight">
|
||||
<double>0.2</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
</void>
|
||||
<void property="children">
|
||||
<object idref="ArrayList2"/>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split0"/>
|
||||
</void>
|
||||
<void property="rowLayout">
|
||||
<boolean>false</boolean>
|
||||
</void>
|
||||
<void property="weight">
|
||||
<double>1.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Divider">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>768</int>
|
||||
<int>0</int>
|
||||
<int>5</int>
|
||||
<int>687</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split0"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object id="MultiSplitLayout$Split3" class="org.jdesktop.swingx.MultiSplitLayout$Split">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>773</int>
|
||||
<int>0</int>
|
||||
<int>251</int>
|
||||
<int>687</int>
|
||||
</object>
|
||||
</void>
|
||||
<void id="ArrayList3" property="children">
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Leaf">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>773</int>
|
||||
<int>0</int>
|
||||
<int>251</int>
|
||||
<int>339</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="name">
|
||||
<string>detail</string>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split3"/>
|
||||
</void>
|
||||
<void property="weight">
|
||||
<double>0.5</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Divider">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>773</int>
|
||||
<int>339</int>
|
||||
<int>251</int>
|
||||
<int>5</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split3"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Leaf">
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>773</int>
|
||||
<int>344</int>
|
||||
<int>251</int>
|
||||
<int>343</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="name">
|
||||
<string>picture</string>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split3"/>
|
||||
</void>
|
||||
<void property="weight">
|
||||
<double>0.5</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
</void>
|
||||
<void property="children">
|
||||
<object idref="ArrayList3"/>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object idref="MultiSplitLayout$Split0"/>
|
||||
</void>
|
||||
<void property="rowLayout">
|
||||
<boolean>false</boolean>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
</void>
|
||||
<void property="children">
|
||||
<object idref="ArrayList0"/>
|
||||
</void>
|
||||
<void property="parent">
|
||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Split">
|
||||
<void id="ArrayList4" property="children">
|
||||
<void method="add">
|
||||
<object idref="MultiSplitLayout$Split0"/>
|
||||
</void>
|
||||
</void>
|
||||
<void property="children">
|
||||
<object idref="ArrayList4"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
</object>
|
||||
</java>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Split>
|
||||
<parent>
|
||||
<bounds>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</bounds>
|
||||
<weight>0.0</weight>
|
||||
<isVisible>true</isVisible>
|
||||
<children>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Split reference="../../.."/>
|
||||
</children>
|
||||
<rowLayout>true</rowLayout>
|
||||
</parent>
|
||||
<bounds>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1024</width>
|
||||
<height>687</height>
|
||||
</bounds>
|
||||
<weight>0.0</weight>
|
||||
<isVisible>true</isVisible>
|
||||
<children>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Split>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>197</width>
|
||||
<height>687</height>
|
||||
</bounds>
|
||||
<weight>0.0</weight>
|
||||
<isVisible>true</isVisible>
|
||||
<children>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>197</width>
|
||||
<height>126</height>
|
||||
</bounds>
|
||||
<weight>0.2</weight>
|
||||
<isVisible>true</isVisible>
|
||||
<name>info</name>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>0</x>
|
||||
<y>126</y>
|
||||
<width>197</width>
|
||||
<height>5</height>
|
||||
</bounds>
|
||||
<weight>0.0</weight>
|
||||
<isVisible>true</isVisible>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>0</x>
|
||||
<y>131</y>
|
||||
<width>197</width>
|
||||
<height>142</height>
|
||||
</bounds>
|
||||
<weight>0.2</weight>
|
||||
<isVisible>true</isVisible>
|
||||
<name>compy</name>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>0</x>
|
||||
<y>273</y>
|
||||
<width>197</width>
|
||||
<height>5</height>
|
||||
</bounds>
|
||||
<weight>0.0</weight>
|
||||
<isVisible>true</isVisible>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>0</x>
|
||||
<y>278</y>
|
||||
<width>197</width>
|
||||
<height>115</height>
|
||||
</bounds>
|
||||
<weight>0.2</weight>
|
||||
<isVisible>true</isVisible>
|
||||
<name>stack</name>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>0</x>
|
||||
<y>393</y>
|
||||
<width>197</width>
|
||||
<height>5</height>
|
||||
</bounds>
|
||||
<weight>0.0</weight>
|
||||
<isVisible>true</isVisible>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>0</x>
|
||||
<y>398</y>
|
||||
<width>197</width>
|
||||
<height>137</height>
|
||||
</bounds>
|
||||
<weight>0.2</weight>
|
||||
<isVisible>true</isVisible>
|
||||
<name>combat</name>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>0</x>
|
||||
<y>535</y>
|
||||
<width>197</width>
|
||||
<height>5</height>
|
||||
</bounds>
|
||||
<weight>0.0</weight>
|
||||
<isVisible>true</isVisible>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>0</x>
|
||||
<y>540</y>
|
||||
<width>197</width>
|
||||
<height>147</height>
|
||||
</bounds>
|
||||
<weight>0.2</weight>
|
||||
<isVisible>true</isVisible>
|
||||
<name>human</name>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
</children>
|
||||
<rowLayout>false</rowLayout>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Split>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>197</x>
|
||||
<y>0</y>
|
||||
<width>5</width>
|
||||
<height>687</height>
|
||||
</bounds>
|
||||
<weight>0.0</weight>
|
||||
<isVisible>true</isVisible>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Split>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>202</x>
|
||||
<y>0</y>
|
||||
<width>678</width>
|
||||
<height>687</height>
|
||||
</bounds>
|
||||
<weight>1.0</weight>
|
||||
<isVisible>true</isVisible>
|
||||
<children>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>202</x>
|
||||
<y>0</y>
|
||||
<width>678</width>
|
||||
<height>281</height>
|
||||
</bounds>
|
||||
<weight>0.4</weight>
|
||||
<isVisible>true</isVisible>
|
||||
<name>compyPlay</name>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>202</x>
|
||||
<y>281</y>
|
||||
<width>678</width>
|
||||
<height>5</height>
|
||||
</bounds>
|
||||
<weight>0.0</weight>
|
||||
<isVisible>true</isVisible>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>202</x>
|
||||
<y>286</y>
|
||||
<width>678</width>
|
||||
<height>313</height>
|
||||
</bounds>
|
||||
<weight>0.4</weight>
|
||||
<isVisible>true</isVisible>
|
||||
<name>humanPlay</name>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>202</x>
|
||||
<y>599</y>
|
||||
<width>678</width>
|
||||
<height>5</height>
|
||||
</bounds>
|
||||
<weight>0.0</weight>
|
||||
<isVisible>true</isVisible>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>202</x>
|
||||
<y>604</y>
|
||||
<width>678</width>
|
||||
<height>83</height>
|
||||
</bounds>
|
||||
<weight>0.2</weight>
|
||||
<isVisible>true</isVisible>
|
||||
<name>humanHand</name>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
</children>
|
||||
<rowLayout>false</rowLayout>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Split>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>880</x>
|
||||
<y>0</y>
|
||||
<width>5</width>
|
||||
<height>687</height>
|
||||
</bounds>
|
||||
<weight>0.0</weight>
|
||||
<isVisible>true</isVisible>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Split>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>885</x>
|
||||
<y>0</y>
|
||||
<width>139</width>
|
||||
<height>687</height>
|
||||
</bounds>
|
||||
<weight>0.0</weight>
|
||||
<isVisible>true</isVisible>
|
||||
<children>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>885</x>
|
||||
<y>0</y>
|
||||
<width>139</width>
|
||||
<height>496</height>
|
||||
</bounds>
|
||||
<weight>0.5</weight>
|
||||
<isVisible>true</isVisible>
|
||||
<name>detail</name>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>885</x>
|
||||
<y>496</y>
|
||||
<width>139</width>
|
||||
<height>5</height>
|
||||
</bounds>
|
||||
<weight>0.0</weight>
|
||||
<isVisible>true</isVisible>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Divider>
|
||||
<org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
<parent reference="../../.."/>
|
||||
<bounds>
|
||||
<x>885</x>
|
||||
<y>501</y>
|
||||
<width>139</width>
|
||||
<height>186</height>
|
||||
</bounds>
|
||||
<weight>0.5</weight>
|
||||
<isVisible>true</isVisible>
|
||||
<name>picture</name>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Leaf>
|
||||
</children>
|
||||
<rowLayout>false</rowLayout>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Split>
|
||||
</children>
|
||||
<rowLayout>true</rowLayout>
|
||||
</org.jdesktop.swingx.MultiSplitLayout_-Split>
|
||||
@@ -1,10 +1,78 @@
|
||||
package forge;
|
||||
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.Font;
|
||||
import java.awt.Frame;
|
||||
import java.awt.GridLayout;
|
||||
import java.awt.Insets;
|
||||
import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseMotionAdapter;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.beans.XMLDecoder;
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Observable;
|
||||
import java.util.Observer;
|
||||
|
||||
import javax.swing.Action;
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JCheckBoxMenuItem;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JLayeredPane;
|
||||
import javax.swing.JMenu;
|
||||
import javax.swing.JMenuBar;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JSeparator;
|
||||
import javax.swing.JTextArea;
|
||||
import javax.swing.ScrollPaneConstants;
|
||||
import javax.swing.SwingConstants;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.border.Border;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
import javax.swing.border.EtchedBorder;
|
||||
import javax.swing.border.TitledBorder;
|
||||
|
||||
import net.slightlymagic.braids.util.ImmutableIterableFrom;
|
||||
|
||||
import org.jdesktop.swingx.JXMultiSplitPane;
|
||||
import org.jdesktop.swingx.MultiSplitLayout.Node;
|
||||
|
||||
import arcane.ui.HandArea;
|
||||
import arcane.ui.PlayArea;
|
||||
import arcane.ui.ViewPanel;
|
||||
import arcane.ui.util.Animation;
|
||||
|
||||
import com.google.code.jyield.Generator;
|
||||
import com.google.code.jyield.YieldUtils;
|
||||
import com.thoughtworks.xstream.XStream;
|
||||
import com.thoughtworks.xstream.XStreamException;
|
||||
|
||||
import forge.card.cardFactory.CardFactoryUtil;
|
||||
import forge.error.ErrorViewer;
|
||||
import forge.game.GameLossReason;
|
||||
@@ -20,28 +88,6 @@ import forge.properties.ForgePreferences;
|
||||
import forge.properties.ForgeProps;
|
||||
import forge.properties.NewConstants;
|
||||
import forge.view.swing.OldGuiNewGame;
|
||||
import net.slightlymagic.braids.util.ImmutableIterableFrom;
|
||||
import org.jdesktop.swingx.JXMultiSplitPane;
|
||||
import org.jdesktop.swingx.MultiSplitLayout.Node;
|
||||
|
||||
import com.google.code.jyield.Generator;
|
||||
import com.google.code.jyield.YieldUtils;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.Border;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
import javax.swing.border.EtchedBorder;
|
||||
import javax.swing.border.TitledBorder;
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.awt.event.*;
|
||||
import java.beans.XMLDecoder;
|
||||
import java.beans.XMLEncoder;
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
|
||||
import static org.jdesktop.swingx.MultiSplitLayout.parseModel;
|
||||
|
||||
|
||||
/**
|
||||
@@ -752,28 +798,52 @@ public class GuiDisplay4 extends JFrame implements CardContainer, Display, NewCo
|
||||
private void initComponents() {
|
||||
//Preparing the Frame
|
||||
setTitle(ForgeProps.getLocalized(LANG.PROGRAM_NAME));
|
||||
if (!OldGuiNewGame.useLAFFonts.isSelected()) setFont(new Font("Times New Roman", 0, 16));
|
||||
if (!OldGuiNewGame.useLAFFonts.isSelected()) {
|
||||
setFont(new Font("Times New Roman", 0, 16));
|
||||
}
|
||||
getContentPane().setLayout(new BorderLayout());
|
||||
|
||||
// I tried using the JavaBeanConverter with this, but I got a
|
||||
// StackOverflowError due to an infinite loop. The default
|
||||
// XStream format seems just fine, anyway.
|
||||
final XStream xstream = new XStream();
|
||||
|
||||
|
||||
addWindowListener(new WindowAdapter() {
|
||||
@Override
|
||||
public void windowClosing(WindowEvent evt) {
|
||||
public void windowClosing(final WindowEvent evt) {
|
||||
concede();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void windowClosed(WindowEvent e) {
|
||||
public void windowClosed(final WindowEvent evt) {
|
||||
|
||||
// Write the layout to the new file, usually
|
||||
// res/gui/display_new_layout.xml
|
||||
File f = ForgeProps.getFile(LAYOUT_NEW);
|
||||
|
||||
Node layout = pane.getMultiSplitLayout().getModel();
|
||||
|
||||
BufferedOutputStream out = null;
|
||||
try {
|
||||
XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(f)));
|
||||
encoder.writeObject(layout);
|
||||
encoder.close();
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace();
|
||||
out = new BufferedOutputStream(new FileOutputStream(f));
|
||||
xstream.toXML(layout, out);
|
||||
}
|
||||
catch (IOException ex) {
|
||||
assert System.err != null;
|
||||
|
||||
System.err.println("Ignoring exception:");
|
||||
ex.printStackTrace(); // NOPMD by Braids on 8/21/11 9:20 PM
|
||||
System.err.println("-------------------");
|
||||
}
|
||||
finally {
|
||||
if (out != null) {
|
||||
try {
|
||||
out.close();
|
||||
} catch (Throwable ignored) { // NOPMD by Braids on 8/21/11 9:20 PM
|
||||
// Ignore failure to close.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -783,43 +853,95 @@ public class GuiDisplay4 extends JFrame implements CardContainer, Display, NewCo
|
||||
|
||||
// Try to load the latest saved layout, usually
|
||||
// res/gui/display_new_layout.xml
|
||||
File f = ForgeProps.getFile(LAYOUT_NEW);
|
||||
final File file = ForgeProps.getFile(LAYOUT_NEW);
|
||||
|
||||
// If the new file does not exist, read the configuration from the
|
||||
// default layout, usually res/gui/display_layout.xml
|
||||
if (!f.exists()) {
|
||||
f = ForgeProps.getFile(LAYOUT);
|
||||
}
|
||||
try {
|
||||
XMLDecoder decoder = new XMLDecoder(new BufferedInputStream(new FileInputStream(f)));
|
||||
model = (Node) decoder.readObject();
|
||||
decoder.close();
|
||||
pane.getMultiSplitLayout().setModel(model);
|
||||
//pane.getMultiSplitLayout().setFloatingDividers(false);
|
||||
} catch (Exception ex) {
|
||||
model = parseModel(""//
|
||||
+ "(ROW "//
|
||||
+ "(COLUMN"//
|
||||
+ " (LEAF weight=0.2 name=info)"//
|
||||
+ " (LEAF weight=0.2 name=compy)"//
|
||||
+ " (LEAF weight=0.2 name=stack)"//
|
||||
+ " (LEAF weight=0.2 name=combat)"//
|
||||
+ " (LEAF weight=0.2 name=human)) "//
|
||||
+ "(COLUMN weight=1"//
|
||||
+ " (LEAF weight=0.4 name=compyPlay)"//
|
||||
+ " (LEAF weight=0.4 name=humanPlay)"//
|
||||
+ " (LEAF weight=0.2 name=humanHand)) "//
|
||||
+ "(COLUMN"//
|
||||
+ " (LEAF weight=0.5 name=detail)"//
|
||||
+ " (LEAF weight=0.5 name=picture)))");
|
||||
pane.setModel(model);
|
||||
model = loadModel(xstream, file);
|
||||
}
|
||||
catch (XStreamException xse) {
|
||||
assert System.err != null;
|
||||
|
||||
System.err.println("Error loading '" + file.getAbsolutePath() + "' using XStream: "
|
||||
+ xse.getLocalizedMessage());
|
||||
|
||||
model = null;
|
||||
}
|
||||
catch (FileNotFoundException e1) {
|
||||
model = null;
|
||||
}
|
||||
|
||||
if (model == null) {
|
||||
assert System.err != null;
|
||||
|
||||
System.err.println("Unable to parse file '" + file.getAbsolutePath()
|
||||
+ "' with XStream; trying XMLDecoder.");
|
||||
|
||||
try {
|
||||
model = loadModelUsingXMLDecoder(file);
|
||||
}
|
||||
catch (FileNotFoundException e1) {
|
||||
model = null;
|
||||
}
|
||||
catch (Throwable exn) { // NOPMD by Braids on 8/21/11 9:20 PM
|
||||
System.err.println("Ignoring exception:");
|
||||
exn.printStackTrace(); // NOPMD by Braids on 8/21/11 9:20 PM
|
||||
System.err.println("-------------------");
|
||||
|
||||
model = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (model == null) {
|
||||
System.err.println("XMLDecoder failed; using default layout.");
|
||||
final File defaultFile = ForgeProps.getFile(LAYOUT);
|
||||
|
||||
try {
|
||||
model = loadModel(xstream, defaultFile);
|
||||
}
|
||||
catch (Exception exn) {
|
||||
// Should never happen.
|
||||
throw new RuntimeException(exn); // NOPMD by Braids on 8/21/11 9:18 PM
|
||||
|
||||
/*
|
||||
* This code is useful for bootstrapping a display_new_layout.xml file.
|
||||
*
|
||||
System.err.println("Unable to parse file '" + defaultFile.getAbsolutePath()
|
||||
+ "' with XStream; using hard coded defaults.");
|
||||
|
||||
model = parseModel(""//
|
||||
+ "(ROW "//
|
||||
+ "(COLUMN"//
|
||||
+ " (LEAF weight=0.2 name=info)"//
|
||||
+ " (LEAF weight=0.2 name=compy)"//
|
||||
+ " (LEAF weight=0.2 name=stack)"//
|
||||
+ " (LEAF weight=0.2 name=combat)"//
|
||||
+ " (LEAF weight=0.2 name=human)) "//
|
||||
+ "(COLUMN weight=1"//
|
||||
+ " (LEAF weight=0.4 name=compyPlay)"//
|
||||
+ " (LEAF weight=0.4 name=humanPlay)"//
|
||||
+ " (LEAF weight=0.2 name=humanHand)) "//
|
||||
+ "(COLUMN"//
|
||||
+ " (LEAF weight=0.5 name=detail)"//
|
||||
+ " (LEAF weight=0.5 name=picture)))");
|
||||
|
||||
pane.setModel(model);
|
||||
*
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
if (model != null) {
|
||||
pane.getMultiSplitLayout().setModel(model);
|
||||
}
|
||||
|
||||
pane.getMultiSplitLayout().setFloatingDividers(false);
|
||||
getContentPane().add(pane);
|
||||
|
||||
//adding the individual parts
|
||||
|
||||
if (!OldGuiNewGame.useLAFFonts.isSelected()) initFonts(pane);
|
||||
if (!OldGuiNewGame.useLAFFonts.isSelected()) {
|
||||
initFonts(pane);
|
||||
}
|
||||
|
||||
initMsgYesNo(pane);
|
||||
initOpp(pane);
|
||||
@@ -829,6 +951,75 @@ public class GuiDisplay4 extends JFrame implements CardContainer, Display, NewCo
|
||||
initCardPicture(pane);
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the panel size preferences from a the given file using XStream.
|
||||
*
|
||||
* <p>
|
||||
* throws XStreamException if there was a parsing error
|
||||
* </p>
|
||||
*
|
||||
* @param xstream the XStream parser to use; do not use JavaBeanConverter!
|
||||
* @param file the XML file containing the preferences
|
||||
* @return the preferences model as a Node instance
|
||||
* @throws FileNotFoundException if file does not exist
|
||||
*/
|
||||
public static Node loadModel(final XStream xstream, final File file) throws FileNotFoundException
|
||||
{
|
||||
BufferedInputStream bufferedIn = null;
|
||||
Node model = null;
|
||||
try {
|
||||
bufferedIn = new BufferedInputStream(new FileInputStream(file));
|
||||
model = (Node) xstream.fromXML(bufferedIn);
|
||||
}
|
||||
finally {
|
||||
try {
|
||||
if (bufferedIn != null) {
|
||||
bufferedIn.close();
|
||||
}
|
||||
} catch (Throwable ignored) { // NOPMD by Braids on 8/21/11 9:20 PM
|
||||
// Ignore exceptions on close.
|
||||
}
|
||||
}
|
||||
return model;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the panel size preferences from a the given file using the old
|
||||
* XMLDecoder format. XStream is preferred.
|
||||
*
|
||||
* @param file the XML file containing the preferences
|
||||
* @return the preferences model as a Node instance
|
||||
* @throws FileNotFoundException if file does not exist
|
||||
*/
|
||||
public static Node loadModelUsingXMLDecoder(final File file) throws FileNotFoundException {
|
||||
BufferedInputStream bufferedIn = null;
|
||||
Node model = null;
|
||||
XMLDecoder decoder = null;
|
||||
try {
|
||||
bufferedIn = new BufferedInputStream(new FileInputStream(file));
|
||||
decoder = new XMLDecoder(bufferedIn);
|
||||
model = (Node) decoder.readObject();
|
||||
}
|
||||
finally {
|
||||
try {
|
||||
if (decoder != null) {
|
||||
decoder.close();
|
||||
}
|
||||
} catch (Throwable ignored) { // NOPMD by Braids on 8/21/11 9:20 PM
|
||||
// Ignore exceptions on close.
|
||||
}
|
||||
|
||||
try {
|
||||
if (bufferedIn != null) {
|
||||
bufferedIn.close();
|
||||
}
|
||||
} catch (Throwable ignored) { // NOPMD by Braids on 8/21/11 9:20 PM
|
||||
// Ignore exceptions on close.
|
||||
}
|
||||
}
|
||||
return model;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>initFonts.</p>
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user