Massive removal of old UI code:

Easy accessors added FView and FControl to various components throughout UI.
Mishmash of methods in "Display" interface attached as appropriate to singletons.
AllZone updated to remove display and one or two others in favor of singletons, for future deprecation.
Some renaming for consistency.
Skins folder moved out of "images", which will be deprecated soon.
FControl refactored to reuse single instance of each UI state.
This commit is contained in:
Doublestrike
2012-02-13 12:13:47 +00:00
parent 46ea9e05b4
commit 668839a528
119 changed files with 1135 additions and 1823 deletions

66
.gitattributes vendored
View File

@@ -10317,8 +10317,6 @@ res/draft/rare.txt svneol=native#text/plain
res/draft/uncommon.txt svneol=native#text/plain res/draft/uncommon.txt svneol=native#text/plain
res/gamedata/NonStackingKWList.txt svneol=native#text/plain res/gamedata/NonStackingKWList.txt svneol=native#text/plain
res/gamedata/TypeLists.txt svneol=native#text/plain res/gamedata/TypeLists.txt svneol=native#text/plain
res/gui/display_layout.xml svneol=native#text/xml
res/gui/gui.properties svneol=native#text/plain
res/images/deckeditor/filter_artifact_n.png -text svneol=unset#image/png res/images/deckeditor/filter_artifact_n.png -text svneol=unset#image/png
res/images/deckeditor/filter_artifact_y.png -text svneol=unset#image/png res/images/deckeditor/filter_artifact_y.png -text svneol=unset#image/png
res/images/deckeditor/filter_black_n.png -text svneol=unset#image/png res/images/deckeditor/filter_black_n.png -text svneol=unset#image/png
@@ -10345,30 +10343,6 @@ res/images/deckeditor/filter_sorcery_n.png -text svneol=unset#image/png
res/images/deckeditor/filter_sorcery_y.png -text svneol=unset#image/png res/images/deckeditor/filter_sorcery_y.png -text svneol=unset#image/png
res/images/deckeditor/filter_white_n.png -text svneol=unset#image/png res/images/deckeditor/filter_white_n.png -text svneol=unset#image/png
res/images/deckeditor/filter_white_y.png -text svneol=unset#image/png res/images/deckeditor/filter_white_y.png -text svneol=unset#image/png
res/images/skins/darkascension/bg_match.jpg -text
res/images/skins/darkascension/bg_splash.png -text
res/images/skins/darkascension/bg_texture.jpg -text
res/images/skins/darkascension/font1.ttf -text
res/images/skins/darkascension/sprite_icons.png -text
res/images/skins/default/bg_match.jpg -text
res/images/skins/default/bg_splash.png -text
res/images/skins/default/bg_texture.jpg -text
res/images/skins/default/font1.ttf -text
res/images/skins/default/grid_icons.png -text
res/images/skins/default/loader.gif -text
res/images/skins/default/sprite_avatars.png -text
res/images/skins/default/sprite_foils.png -text
res/images/skins/default/sprite_icons.png -text
res/images/skins/rebel/bg_match.jpg -text
res/images/skins/rebel/bg_splash.png -text
res/images/skins/rebel/bg_texture.jpg -text
res/images/skins/rebel/font1.ttf -text
res/images/skins/rebel/sprite_icons.png -text
res/images/skins/smith/bg_match.jpg -text
res/images/skins/smith/bg_splash.png -text
res/images/skins/smith/bg_texture.jpg -text
res/images/skins/smith/font1.ttf -text
res/images/skins/smith/sprite_icons.png -text
res/lang/de.properties svneol=native#text/plain res/lang/de.properties svneol=native#text/plain
res/lang/en.properties svneol=native#text/plain res/lang/en.properties svneol=native#text/plain
res/lang/howTo/de.properties svneol=native#text/plain res/lang/howTo/de.properties svneol=native#text/plain
@@ -10853,6 +10827,30 @@ res/quest/themes/Zombies[!!-~]B.thm -text
res/reprintSetInfo.py svneol=native#text/x-python res/reprintSetInfo.py svneol=native#text/x-python
res/sealed/juzamjedi.zsealed -text res/sealed/juzamjedi.zsealed -text
res/setInfoScript.py svneol=native#text/x-python res/setInfoScript.py svneol=native#text/x-python
res/skins/darkascension/bg_match.jpg -text
res/skins/darkascension/bg_splash.png -text
res/skins/darkascension/bg_texture.jpg -text
res/skins/darkascension/font1.ttf -text
res/skins/darkascension/sprite_icons.png -text
res/skins/default/bg_match.jpg -text
res/skins/default/bg_splash.png -text
res/skins/default/bg_texture.jpg -text
res/skins/default/font1.ttf -text
res/skins/default/grid_icons.png -text
res/skins/default/loader.gif -text
res/skins/default/sprite_avatars.png -text
res/skins/default/sprite_foils.png -text
res/skins/default/sprite_icons.png -text
res/skins/rebel/bg_match.jpg -text
res/skins/rebel/bg_splash.png -text
res/skins/rebel/bg_texture.jpg -text
res/skins/rebel/font1.ttf -text
res/skins/rebel/sprite_icons.png -text
res/skins/smith/bg_match.jpg -text
res/skins/smith/bg_splash.png -text
res/skins/smith/bg_texture.jpg -text
res/skins/smith/font1.ttf -text
res/skins/smith/sprite_icons.png -text
res/sound/tap.mp3 -text svneol=unset#audio/mpeg res/sound/tap.mp3 -text svneol=unset#audio/mpeg
res/token-images.txt -text res/token-images.txt -text
src/main/config/Forge.icns -text src/main/config/Forge.icns -text
@@ -10913,7 +10911,6 @@ src/main/java/forge/Constant.java svneol=native#text/plain
src/main/java/forge/ConstantStringArrayList.java svneol=native#text/plain src/main/java/forge/ConstantStringArrayList.java svneol=native#text/plain
src/main/java/forge/Counters.java svneol=native#text/plain src/main/java/forge/Counters.java svneol=native#text/plain
src/main/java/forge/DefaultPlayerZone.java svneol=native#text/plain src/main/java/forge/DefaultPlayerZone.java svneol=native#text/plain
src/main/java/forge/Display.java svneol=native#text/plain
src/main/java/forge/EndOfCombat.java svneol=native#text/plain src/main/java/forge/EndOfCombat.java svneol=native#text/plain
src/main/java/forge/EndOfTurn.java svneol=native#text/plain src/main/java/forge/EndOfTurn.java svneol=native#text/plain
src/main/java/forge/ExternalPanel.java svneol=native#text/plain src/main/java/forge/ExternalPanel.java svneol=native#text/plain
@@ -11139,7 +11136,7 @@ src/main/java/forge/control/match/ControlDetail.java -text
src/main/java/forge/control/match/ControlDock.java -text src/main/java/forge/control/match/ControlDock.java -text
src/main/java/forge/control/match/ControlField.java -text src/main/java/forge/control/match/ControlField.java -text
src/main/java/forge/control/match/ControlHand.java -text src/main/java/forge/control/match/ControlHand.java -text
src/main/java/forge/control/match/ControlInput.java -text src/main/java/forge/control/match/ControlMessage.java -text
src/main/java/forge/control/match/ControlPicture.java -text src/main/java/forge/control/match/ControlPicture.java -text
src/main/java/forge/control/match/ControlTabber.java -text src/main/java/forge/control/match/ControlTabber.java -text
src/main/java/forge/control/match/ControlWinLose.java -text src/main/java/forge/control/match/ControlWinLose.java -text
@@ -11297,18 +11294,18 @@ src/main/java/forge/util/MyRandom.java svneol=native#text/plain
src/main/java/forge/util/SectionUtil.java -text src/main/java/forge/util/SectionUtil.java -text
src/main/java/forge/util/package-info.java -text src/main/java/forge/util/package-info.java -text
src/main/java/forge/view/FView.java svneol=native#text/plain src/main/java/forge/view/FView.java svneol=native#text/plain
src/main/java/forge/view/GuiTopLevel.java -text
src/main/java/forge/view/Main.java -text src/main/java/forge/view/Main.java -text
src/main/java/forge/view/bazaar/BazaarTopLevel.java -text src/main/java/forge/view/SplashFrame.java -text
src/main/java/forge/view/ViewBazaarUI.java -text
src/main/java/forge/view/ViewEditorUI.java -text
src/main/java/forge/view/ViewHomeUI.java -text
src/main/java/forge/view/ViewMatchUI.java -text
src/main/java/forge/view/bazaar/ViewItem.java -text src/main/java/forge/view/bazaar/ViewItem.java -text
src/main/java/forge/view/bazaar/ViewStall.java svneol=native#text/plain src/main/java/forge/view/bazaar/ViewStall.java svneol=native#text/plain
src/main/java/forge/view/bazaar/package-info.java svneol=native#text/plain src/main/java/forge/view/bazaar/package-info.java svneol=native#text/plain
src/main/java/forge/view/editor/EditorTopLevel.java -text
src/main/java/forge/view/editor/package-info.java svneol=native#text/plain src/main/java/forge/view/editor/package-info.java svneol=native#text/plain
src/main/java/forge/view/home/HomeTopLevel.java -text
src/main/java/forge/view/home/QuestFileLister.java -text src/main/java/forge/view/home/QuestFileLister.java -text
src/main/java/forge/view/home/QuestPreferencesHandler.java -text src/main/java/forge/view/home/QuestPreferencesHandler.java -text
src/main/java/forge/view/home/SplashFrame.java -text
src/main/java/forge/view/home/StartButton.java -text src/main/java/forge/view/home/StartButton.java -text
src/main/java/forge/view/home/ViewConstructed.java -text src/main/java/forge/view/home/ViewConstructed.java -text
src/main/java/forge/view/home/ViewDraft.java -text src/main/java/forge/view/home/ViewDraft.java -text
@@ -11317,7 +11314,6 @@ src/main/java/forge/view/home/ViewSealed.java -text
src/main/java/forge/view/home/ViewSettings.java -text src/main/java/forge/view/home/ViewSettings.java -text
src/main/java/forge/view/home/ViewUtilities.java -text src/main/java/forge/view/home/ViewUtilities.java -text
src/main/java/forge/view/home/package-info.java svneol=native#text/plain src/main/java/forge/view/home/package-info.java svneol=native#text/plain
src/main/java/forge/view/match/MatchTopLevel.java -text
src/main/java/forge/view/match/QuestWinLoseCardViewer.java -text src/main/java/forge/view/match/QuestWinLoseCardViewer.java -text
src/main/java/forge/view/match/QuestWinLoseHandler.java -text src/main/java/forge/view/match/QuestWinLoseHandler.java -text
src/main/java/forge/view/match/ViewBattlefield.java -text src/main/java/forge/view/match/ViewBattlefield.java -text
@@ -11325,7 +11321,7 @@ src/main/java/forge/view/match/ViewDetail.java -text
src/main/java/forge/view/match/ViewDock.java -text src/main/java/forge/view/match/ViewDock.java -text
src/main/java/forge/view/match/ViewField.java -text src/main/java/forge/view/match/ViewField.java -text
src/main/java/forge/view/match/ViewHand.java -text src/main/java/forge/view/match/ViewHand.java -text
src/main/java/forge/view/match/ViewInput.java -text src/main/java/forge/view/match/ViewMessage.java -text
src/main/java/forge/view/match/ViewPicture.java -text src/main/java/forge/view/match/ViewPicture.java -text
src/main/java/forge/view/match/ViewTabber.java -text src/main/java/forge/view/match/ViewTabber.java -text
src/main/java/forge/view/match/ViewWinLose.java -text src/main/java/forge/view/match/ViewWinLose.java -text

1
.gitignore vendored
View File

@@ -10,7 +10,6 @@ res/PerSetTrackingResults
res/cardsfolder/cardsfolder.zip res/cardsfolder/cardsfolder.zip
res/decks/AI_o1.dck res/decks/AI_o1.dck
res/decks/o1.bdk res/decks/o1.bdk
res/gui/display_new_layout.xml
res/images/themes res/images/themes
res/oracleScript.log res/oracleScript.log
res/pics res/pics

View File

@@ -1,29 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<projectDescription> <projectDescription>
<name>Forge</name> <name>ForgeLocal</name>
<comment></comment> <comment></comment>
<projects> <projects>
</projects> </projects>
<buildSpec> <buildSpec>
<buildCommand> <buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name> <name>org.eclipse.jdt.core.javabuilder</name>
<arguments> <arguments>
</arguments> </arguments>
</buildCommand> </buildCommand>
<buildCommand> <buildCommand>
<name>net.sf.eclipsecs.core.CheckstyleBuilder</name> <name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
<arguments> <arguments>
</arguments> </arguments>
</buildCommand> </buildCommand>
<buildCommand> <buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name> <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments> <arguments>
</arguments> </arguments>
</buildCommand> </buildCommand>
</buildSpec> </buildSpec>
<natures> <natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature> <nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature> <nature>org.eclipse.jdt.core.javanature</nature>
<nature>net.sf.eclipsecs.core.CheckstyleNature</nature> <nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
</natures> </natures>
</projectDescription> </projectDescription>

View File

@@ -1,288 +0,0 @@
<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>

View File

@@ -1,3 +0,0 @@
Display--file=display_layout.xml
Display/new--file=display_new_layout.xml
DeckEditor--file=deck_editor_layout.xml

View File

@@ -53,7 +53,6 @@ regular/rare--file=rare.txt
name-mutator--file=name-mutator.txt name-mutator--file=name-mutator.txt
gui--properties=gui/gui.properties
quest--properties=quest/quest.properties quest--properties=quest/quest.properties
draft--properties=draft/draft.properties draft--properties=draft/draft.properties
@@ -64,8 +63,6 @@ image/token--file=pics/tokens
image/icon--file=images/icons image/icon--file=images/icons
pics/booster--file=pics/booster pics/booster--file=pics/booster
pics/booster/images--file=quest/booster-images.txt pics/booster/images--file=quest/booster-images.txt
symbols/small--file=images/symbols-13
sound/base--file=sound
quest/opponent/icons--file=quest/quest-opponent-icons.txt quest/opponent/icons--file=quest/quest-opponent-icons.txt
quest/pet/icons--file=quest/quest-pet-shop-icons.txt quest/pet/icons--file=quest/quest-pet-shop-icons.txt

View File

Before

Width:  |  Height:  |  Size: 359 KiB

After

Width:  |  Height:  |  Size: 359 KiB

View File

Before

Width:  |  Height:  |  Size: 389 KiB

After

Width:  |  Height:  |  Size: 389 KiB

View File

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

View File

Before

Width:  |  Height:  |  Size: 260 KiB

After

Width:  |  Height:  |  Size: 260 KiB

View File

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 172 KiB

View File

Before

Width:  |  Height:  |  Size: 208 KiB

After

Width:  |  Height:  |  Size: 208 KiB

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

Before

Width:  |  Height:  |  Size: 404 B

After

Width:  |  Height:  |  Size: 404 B

View File

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

View File

Before

Width:  |  Height:  |  Size: 2.4 MiB

After

Width:  |  Height:  |  Size: 2.4 MiB

View File

Before

Width:  |  Height:  |  Size: 549 KiB

After

Width:  |  Height:  |  Size: 549 KiB

View File

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

View File

Before

Width:  |  Height:  |  Size: 260 KiB

After

Width:  |  Height:  |  Size: 260 KiB

View File

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 152 KiB

View File

Before

Width:  |  Height:  |  Size: 341 KiB

After

Width:  |  Height:  |  Size: 341 KiB

View File

Before

Width:  |  Height:  |  Size: 340 KiB

After

Width:  |  Height:  |  Size: 340 KiB

View File

Before

Width:  |  Height:  |  Size: 776 KiB

After

Width:  |  Height:  |  Size: 776 KiB

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@@ -36,8 +36,6 @@ import forge.properties.NewConstants;
import forge.quest.data.QuestData; import forge.quest.data.QuestData;
import forge.quest.data.QuestEvent; import forge.quest.data.QuestEvent;
import forge.quest.data.QuestEventManager; import forge.quest.data.QuestEventManager;
import forge.view.GuiTopLevel;
import forge.view.toolbox.FOverlay;
/** /**
* Please use public getters and setters instead of direct field access. * Please use public getters and setters instead of direct field access.
@@ -88,12 +86,6 @@ public final class AllZone {
// shared between Input_Attack, Input_Block, Input_CombatDamage , // shared between Input_Attack, Input_Block, Input_CombatDamage ,
// InputState_Computer // InputState_Computer
/** Global <code>display</code>. */
private static Display display;
/** Global <code>overlay</code>. */
private static FOverlay overlay;
/** Constant <code>DECK_MGR</code>. */ /** Constant <code>DECK_MGR</code>. */
private static DeckManager deckManager; private static DeckManager deckManager;
@@ -493,31 +485,6 @@ public final class AllZone {
return Singletons.getModel().getGameState().getStackZone(); return Singletons.getModel().getGameState().getStackZone();
} }
/**
* <p>
* getDisplay.
* </p>
*
* @return a {@link forge.Display} object.
* @since 1.0.15
*/
public static Display getDisplay() {
return AllZone.display;
}
/**
* <p>
* setDisplay.
* </p>
*
* @param display0
* a {@link forge.Display} object.
* @since 1.0.15
*/
public static void setDisplay(final Display display0) {
AllZone.display = display0;
}
/** /**
* <p> * <p>
* getZone. * getZone.
@@ -630,11 +597,11 @@ public final class AllZone {
public static void newGameCleanup() { public static void newGameCleanup() {
Singletons.getModel().getGameState().newGameCleanup(); Singletons.getModel().getGameState().newGameCleanup();
AllZone.getDisplay().showCombat(""); Singletons.getControl().getMatchControl().showCombat("");
AllZone.getDisplay().loadPrefs(); Singletons.getModel().loadPrefs();
AllZone.getInputControl().clearInput(); AllZone.getInputControl().clearInput();
AllZone.getColorChanger().reset(); AllZone.getColorChanger().reset();
((GuiTopLevel) AllZone.getDisplay()).showStack(); Singletons.getControl().getMatchControl().showStack();
} }
/** /**
@@ -655,25 +622,6 @@ public final class AllZone {
return AllZone.COLOR_CHANGER; return AllZone.COLOR_CHANGER;
} }
/**
* Gets the overlay.
*
* @return overlay
*/
public static FOverlay getOverlay() {
return AllZone.overlay;
}
/**
* Sets the overlay.
*
* @param overlay0
* &emsp; Overlay panel
*/
public static void setOverlay(final FOverlay overlay0) {
AllZone.overlay = overlay0;
}
/** /**
* Gets the CardRatings object. * Gets the CardRatings object.
* *

View File

@@ -17,6 +17,8 @@
*/ */
package forge; package forge;
import javax.swing.JButton;
/** /**
* <p> * <p>
* ButtonUtil class. * ButtonUtil class.
@@ -35,8 +37,8 @@ public class ButtonUtil {
ButtonUtil.getOK().setText("OK"); ButtonUtil.getOK().setText("OK");
ButtonUtil.getCancel().setText("Cancel"); ButtonUtil.getCancel().setText("Cancel");
ButtonUtil.getOK().setSelectable(false); ButtonUtil.getOK().setEnabled(false);
ButtonUtil.getCancel().setSelectable(false); ButtonUtil.getCancel().setEnabled(false);
} }
/** /**
@@ -45,8 +47,8 @@ public class ButtonUtil {
* </p> * </p>
*/ */
public static void enableOnlyOK() { public static void enableOnlyOK() {
ButtonUtil.getOK().setSelectable(true); ButtonUtil.getOK().setEnabled(true);
ButtonUtil.getCancel().setSelectable(false); ButtonUtil.getCancel().setEnabled(false);
} }
/** /**
@@ -55,8 +57,8 @@ public class ButtonUtil {
* </p> * </p>
*/ */
public static void enableOnlyCancel() { public static void enableOnlyCancel() {
ButtonUtil.getOK().setSelectable(false); ButtonUtil.getOK().setEnabled(false);
ButtonUtil.getCancel().setSelectable(true); ButtonUtil.getCancel().setEnabled(true);
} }
/** /**
@@ -65,8 +67,8 @@ public class ButtonUtil {
* </p> * </p>
*/ */
public static void disableAll() { public static void disableAll() {
ButtonUtil.getOK().setSelectable(false); ButtonUtil.getOK().setEnabled(false);
ButtonUtil.getCancel().setSelectable(false); ButtonUtil.getCancel().setEnabled(false);
} }
/** /**
@@ -75,8 +77,8 @@ public class ButtonUtil {
* </p> * </p>
*/ */
public static void enableAll() { public static void enableAll() {
ButtonUtil.getOK().setSelectable(true); ButtonUtil.getOK().setEnabled(true);
ButtonUtil.getCancel().setSelectable(true); ButtonUtil.getCancel().setEnabled(true);
} }
/** /**
@@ -85,7 +87,7 @@ public class ButtonUtil {
* </p> * </p>
*/ */
public static void disableOK() { public static void disableOK() {
ButtonUtil.getOK().setSelectable(false); ButtonUtil.getOK().setEnabled(false);
} }
/** /**
@@ -94,7 +96,7 @@ public class ButtonUtil {
* </p> * </p>
*/ */
public static void disableCancel() { public static void disableCancel() {
ButtonUtil.getCancel().setSelectable(false); ButtonUtil.getCancel().setEnabled(false);
} }
/** /**
@@ -104,8 +106,8 @@ public class ButtonUtil {
* *
* @return a {@link forge.MyButton} object. * @return a {@link forge.MyButton} object.
*/ */
private static MyButton getOK() { private static JButton getOK() {
return AllZone.getDisplay().getButtonOK(); return Singletons.getView().getMatchView().getBtnOK();
} }
/** /**
@@ -115,7 +117,7 @@ public class ButtonUtil {
* *
* @return a {@link forge.MyButton} object. * @return a {@link forge.MyButton} object.
*/ */
private static MyButton getCancel() { private static JButton getCancel() {
return AllZone.getDisplay().getButtonCancel(); return Singletons.getView().getMatchView().getBtnCancel();
} }
} }

View File

@@ -49,6 +49,7 @@ import forge.card.CardRulesReader;
import forge.card.replacement.ReplacementHandler; import forge.card.replacement.ReplacementHandler;
import forge.card.trigger.TriggerHandler; import forge.card.trigger.TriggerHandler;
import forge.error.ErrorViewer; import forge.error.ErrorViewer;
import forge.view.SplashFrame;
import forge.view.toolbox.FProgressBar; import forge.view.toolbox.FProgressBar;
/** /**
@@ -262,7 +263,7 @@ public class CardReader implements Runnable {
*/ */
protected final Card loadCardsUntilYouFind(final String cardName) { protected final Card loadCardsUntilYouFind(final String cardName) {
Card result = null; Card result = null;
final FProgressBar barProgress = Singletons.getView().getProgressBar(); final FProgressBar barProgress = SplashFrame.PROGRESS_BAR;
// Iterate through txt files or zip archive. // Iterate through txt files or zip archive.
// Report relevant numbers to progress monitor model. // Report relevant numbers to progress monitor model.

View File

@@ -716,7 +716,7 @@ public class Combat {
this.addDefendingDamage(damageDealt, attacker); this.addDefendingDamage(damageDealt, attacker);
} else { } else {
if (attacker.hasKeyword("Trample") || (block.size() > 1)) { if (attacker.hasKeyword("Trample") || (block.size() > 1)) {
AllZone.getDisplay().assignDamage(attacker, block, damageDealt); Singletons.getControl().getMatchControl().assignDamage(attacker, block, damageDealt);
} else { } else {
block.get(0).addAssignedDamage(damageDealt, attacking.get(i)); block.get(0).addAssignedDamage(damageDealt, attacking.get(i));
} }
@@ -768,7 +768,7 @@ public class Combat {
this.addDefendingDamage(damageDealt, attacker); this.addDefendingDamage(damageDealt, attacker);
} else { } else {
if (attacker.hasKeyword("Trample") || (block.size() > 1)) { if (attacker.hasKeyword("Trample") || (block.size() > 1)) {
AllZone.getDisplay().assignDamage(attacker, block, damageDealt); Singletons.getControl().getMatchControl().assignDamage(attacker, block, damageDealt);
} else { } else {
block.get(0).addAssignedDamage(damageDealt, attacking.get(i)); block.get(0).addAssignedDamage(damageDealt, attacking.get(i));
} }

View File

@@ -2264,7 +2264,7 @@ public class CombatUtil {
* </p> * </p>
*/ */
public static void showCombat() { public static void showCombat() {
AllZone.getDisplay().showCombat(""); Singletons.getControl().getMatchControl().showCombat("");
Card[] defend = null; Card[] defend = null;
final StringBuilder display = new StringBuilder(); final StringBuilder display = new StringBuilder();
@@ -2304,7 +2304,7 @@ public class CombatUtil {
} }
} // loop through attackers } // loop through attackers
} }
AllZone.getDisplay().showCombat(display.toString().trim()); Singletons.getControl().getMatchControl().showCombat(display.toString().trim());
} // showBlockers() } // showBlockers()

View File

@@ -1,145 +0,0 @@
/*
* Forge: Play Magic: the Gathering.
* Copyright (C) 2011 Forge Team
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package forge;
/**
* <p>
* Display interface.
* </p>
*
* @author Forge
* @version $Id$
*/
public interface Display {
/**
* <p>
* showMessage.
* </p>
*
* @param s
* a {@link java.lang.String} object.
*/
void showMessage(String s);
/**
* <p>
* getButtonOK.
* </p>
*
* @return a {@link forge.MyButton} object.
*/
MyButton getButtonOK();
/**
* <p>
* getButtonCancel.
* </p>
*
* @return a {@link forge.MyButton} object.
*/
MyButton getButtonCancel();
// public void showStatus(String message);
/**
* <p>
* showCombat.
* </p>
*
* @param message
* a {@link java.lang.String} object.
*/
void showCombat(String message);
/**
* <p>
* setVisible.
* </p>
*
* @param b
* a boolean.
*/
void setVisible(boolean b);
// assigns combat damage, used by Combat.setAssignedDamage()
/**
* <p>
* assignDamage.
* </p>
*
* @param attacker
* a {@link forge.Card} object.
* @param blockers
* a {@link forge.CardList} object.
* @param damage
* a int.
*/
void assignDamage(Card attacker, CardList blockers, int damage);
// public void addAssignDamage(Card attacker, Card blocker, int damage);
// public void addAssignDamage(Card attacker, int damage);
/**
* <p>
* stopAtPhase.
* </p>
*
* @param turn
* a {@link forge.Player} object.
* @param phase
* a {@link java.lang.String} object.
* @return a boolean.
*/
boolean stopAtPhase(Player turn, String phase);
/**
* <p>
* loadPrefs.
* </p>
*
* @return a boolean.
*/
boolean loadPrefs();
/**
* <p>
* savePrefs.
* </p>
*
* @return a boolean.
*/
boolean savePrefs();
/**
* <p>
* canLoseByDecking.
* </p>
*
* @return a boolean.
*/
boolean canLoseByDecking();
/**
* <p>
* setCard.
* </p>
*
* @param c
* a {@link forge.Card} object.
*/
void setCard(Card c);
}

View File

@@ -60,7 +60,6 @@ import forge.properties.ForgePreferences.FPref;
import forge.properties.ForgeProps; import forge.properties.ForgeProps;
import forge.properties.NewConstants.Lang.GameAction.GameActionText; import forge.properties.NewConstants.Lang.GameAction.GameActionText;
import forge.util.MyRandom; import forge.util.MyRandom;
import forge.view.GuiTopLevel;
import forge.view.match.ViewWinLose; import forge.view.match.ViewWinLose;
/** /**
@@ -896,7 +895,7 @@ public class GameAction {
final boolean refreeze = AllZone.getStack().isFrozen(); final boolean refreeze = AllZone.getStack().isFrozen();
AllZone.getStack().setFrozen(true); AllZone.getStack().setFrozen(true);
final JFrame frame = (JFrame) AllZone.getDisplay(); final JFrame frame = Singletons.getView();
if (!frame.isDisplayable()) { if (!frame.isDisplayable()) {
return; return;
} }
@@ -1637,8 +1636,8 @@ public class GameAction {
AllZone.getComputerPlayer().drawCard(); AllZone.getComputerPlayer().drawCard();
} }
AllZone.getDisplay().setCard(AllZone.getHumanPlayer().getCardsIn(Zone.Hand).get(0)); Singletons.getControl().getMatchControl().setCard(AllZone.getHumanPlayer().getCardsIn(Zone.Hand).get(0));
((GuiTopLevel) (AllZone.getDisplay())).getController().getMatchView().getInputController().updateGameCount(); Singletons.getControl().getMatchControl().getMessageControl().updateGameCount();
AllZone.getInputControl().setInput(new InputMulligan()); AllZone.getInputControl().setInput(new InputMulligan());
PhaseHandler.setGameBegins(1); PhaseHandler.setGameBegins(1);

View File

@@ -375,7 +375,7 @@ public final class GameActionUtil {
* @return a boolean. * @return a boolean.
*/ */
public static boolean showYesNoDialog(final Card c, String question, final boolean defaultNo) { public static boolean showYesNoDialog(final Card c, String question, final boolean defaultNo) {
AllZone.getDisplay().setCard(c); Singletons.getControl().getMatchControl().setCard(c);
final StringBuilder title = new StringBuilder(); final StringBuilder title = new StringBuilder();
title.append(c.getName()).append(" - Ability"); title.append(c.getName()).append(" - Ability");
@@ -461,7 +461,7 @@ public final class GameActionUtil {
* @return a boolean. * @return a boolean.
*/ */
private static boolean showLandfallDialog(final Card c) { private static boolean showLandfallDialog(final Card c) {
AllZone.getDisplay().setCard(c); Singletons.getControl().getMatchControl().setCard(c);
final String[] choices = { "Yes", "No" }; final String[] choices = { "Yes", "No" };
Object q = null; Object q = null;

View File

@@ -71,14 +71,11 @@ public class GuiMultipleBlockers extends JFrame {
* a {@link forge.CardList} object. * a {@link forge.CardList} object.
* @param damage * @param damage
* a int. * a int.
* @param display
* a {@link forge.CardContainer} object.
*/ */
public GuiMultipleBlockers(final Card attacker, final CardList creatureList, final int damage, final CardContainer display) { public GuiMultipleBlockers(final Card attacker, final CardList creatureList, final int damage) {
this(); this();
this.assignDamage = damage; this.assignDamage = damage;
this.updateDamageLabel(); // update user message about assigning damage this.updateDamageLabel(); // update user message about assigning damage
this.guiDisplay = display;
this.att = attacker; this.att = attacker;
this.blockers = creatureList; this.blockers = creatureList;
@@ -241,9 +238,7 @@ public class GuiMultipleBlockers extends JFrame {
final CardContainer cardPanel = (CardContainer) o; final CardContainer cardPanel = (CardContainer) o;
final Card c = cardPanel.getCard(); final Card c = cardPanel.getCard();
if (this.guiDisplay != null) { Singletons.getControl().getMatchControl().setCard(c);
this.guiDisplay.setCard(c);
}
} }
} }
} }

View File

@@ -245,7 +245,7 @@ public class HumanPlayer extends Player {
protected final void clashMoveToTopOrBottom(final Card c) { protected final void clashMoveToTopOrBottom(final Card c) {
String choice = ""; String choice = "";
final String[] choices = { "top", "bottom" }; final String[] choices = { "top", "bottom" };
AllZone.getDisplay().setCard(c); Singletons.getControl().getMatchControl().setCard(c);
choice = GuiUtils.getChoice(c.getName() + " - Top or bottom of Library", choices); choice = GuiUtils.getChoice(c.getName() + " - Top or bottom of Library", choices);
if (choice.equals("bottom")) { if (choice.equals("bottom")) {

View File

@@ -746,7 +746,7 @@ public class MagicStack extends MyObservable {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage("Mana Vortex - select a land to sacrifice"); Singletons.getControl().getMatchControl().showMessage("Mana Vortex - select a land to sacrifice");
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -938,7 +938,7 @@ public class MagicStack extends MyObservable {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage("Choose target creature to haunt."); Singletons.getControl().getMatchControl().showMessage("Choose target creature to haunt.");
ButtonUtil.disableAll(); ButtonUtil.disableAll();
} }
@@ -952,7 +952,7 @@ public class MagicStack extends MyObservable {
MagicStack.this.add(haunterDiesWork); MagicStack.this.add(haunterDiesWork);
this.stop(); this.stop();
} else { } else {
AllZone.getDisplay().showMessage("Cannot target this card (Shroud? Protection?)."); Singletons.getControl().getMatchControl().showMessage("Cannot target this card (Shroud? Protection?).");
} }
} }
}; };

View File

@@ -24,7 +24,6 @@ import java.util.Stack;
import com.esotericsoftware.minlog.Log; import com.esotericsoftware.minlog.Log;
import forge.Constant.Zone; import forge.Constant.Zone;
import forge.view.GuiTopLevel;
/** /**
* <p> * <p>
@@ -319,7 +318,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
// UNTAP // UNTAP
if (phase.equals(Constant.Phase.UNTAP)) { if (phase.equals(Constant.Phase.UNTAP)) {
((GuiTopLevel) AllZone.getDisplay()).showStack(); Singletons.getControl().getMatchControl().showStack();
PhaseUtil.handleUntap(); PhaseUtil.handleUntap();
} }
// UPKEEP // UPKEEP
@@ -411,11 +410,11 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
AllZone.getEndOfCombat().executeUntil(); AllZone.getEndOfCombat().executeUntil();
AllZone.getEndOfCombat().executeAt(); AllZone.getEndOfCombat().executeAt();
CombatUtil.showCombat(); CombatUtil.showCombat();
((GuiTopLevel) AllZone.getDisplay()).showStack(); Singletons.getControl().getMatchControl().showStack();
} }
else if (phase.equals(Constant.Phase.MAIN2)) { else if (phase.equals(Constant.Phase.MAIN2)) {
CombatUtil.showCombat(); CombatUtil.showCombat();
((GuiTopLevel) AllZone.getDisplay()).showStack(); Singletons.getControl().getMatchControl().showStack();
} }
// END_OF_TURN // END_OF_TURN
else if (phase.equals(Constant.Phase.END_OF_TURN)) { else if (phase.equals(Constant.Phase.END_OF_TURN)) {
@@ -526,7 +525,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
} }
if (this.getPhase().equals(Constant.Phase.COMBAT_END)) { if (this.getPhase().equals(Constant.Phase.COMBAT_END)) {
((GuiTopLevel) (AllZone.getDisplay())).showStack(); Singletons.getControl().getMatchControl().showStack();
AllZone.getCombat().reset(); AllZone.getCombat().reset();
this.resetAttackedThisCombat(this.getPlayerTurn()); this.resetAttackedThisCombat(this.getPlayerTurn());
this.bCombat = false; this.bCombat = false;

View File

@@ -20,8 +20,7 @@ package forge;
import java.util.HashMap; import java.util.HashMap;
import forge.Constant.Zone; import forge.Constant.Zone;
import forge.view.GuiTopLevel; import forge.control.ControlMatchUI;
import forge.view.match.MatchTopLevel;
import forge.view.match.ViewField.PhaseLabel; import forge.view.match.ViewField.PhaseLabel;
/** /**
@@ -382,7 +381,7 @@ public class PhaseUtil {
public static void visuallyActivatePhase(final String s) { public static void visuallyActivatePhase(final String s) {
PhaseLabel lbl = null; PhaseLabel lbl = null;
final Player p = AllZone.getPhaseHandler().getPlayerTurn(); final Player p = AllZone.getPhaseHandler().getPlayerTurn();
final MatchTopLevel t = ((GuiTopLevel) AllZone.getDisplay()).getController().getMatchController().getView(); final ControlMatchUI t = Singletons.getControl().getMatchControl();
int i; // Index of field; computer is 0, human is 1 int i; // Index of field; computer is 0, human is 1
if (p.isComputer()) { if (p.isComputer()) {
@@ -392,38 +391,35 @@ public class PhaseUtil {
} }
if (s.equals(Constant.Phase.UPKEEP)) { if (s.equals(Constant.Phase.UPKEEP)) {
lbl = t.getFieldControllers().get(i).getView().getLblUpkeep(); lbl = t.getFieldControls().get(i).getView().getLblUpkeep();
} else if (s.equals(Constant.Phase.DRAW)) { } else if (s.equals(Constant.Phase.DRAW)) {
lbl = t.getFieldControllers().get(i).getView().getLblDraw(); lbl = t.getFieldControls().get(i).getView().getLblDraw();
} else if (s.equals(Constant.Phase.MAIN1)) { } else if (s.equals(Constant.Phase.MAIN1)) {
lbl = t.getFieldControllers().get(i).getView().getLblMain1(); lbl = t.getFieldControls().get(i).getView().getLblMain1();
} else if (s.equals(Constant.Phase.COMBAT_BEGIN)) { } else if (s.equals(Constant.Phase.COMBAT_BEGIN)) {
lbl = t.getFieldControllers().get(i).getView().getLblBeginCombat(); lbl = t.getFieldControls().get(i).getView().getLblBeginCombat();
} else if (s.equals(Constant.Phase.COMBAT_DECLARE_ATTACKERS)) { } else if (s.equals(Constant.Phase.COMBAT_DECLARE_ATTACKERS)) {
lbl = t.getFieldControllers().get(i).getView().getLblDeclareAttackers(); lbl = t.getFieldControls().get(i).getView().getLblDeclareAttackers();
} else if (s.equals(Constant.Phase.COMBAT_DECLARE_BLOCKERS)) { } else if (s.equals(Constant.Phase.COMBAT_DECLARE_BLOCKERS)) {
lbl = t.getFieldControllers().get(i).getView().getLblDeclareBlockers(); lbl = t.getFieldControls().get(i).getView().getLblDeclareBlockers();
} else if (s.equals(Constant.Phase.COMBAT_DAMAGE)) { } else if (s.equals(Constant.Phase.COMBAT_DAMAGE)) {
lbl = t.getFieldControllers().get(i).getView().getLblCombatDamage(); lbl = t.getFieldControls().get(i).getView().getLblCombatDamage();
} else if (s.equals(Constant.Phase.COMBAT_FIRST_STRIKE_DAMAGE)) { } else if (s.equals(Constant.Phase.COMBAT_FIRST_STRIKE_DAMAGE)) {
lbl = t.getFieldControllers().get(i).getView().getLblFirstStrike(); lbl = t.getFieldControls().get(i).getView().getLblFirstStrike();
} else if (s.equals(Constant.Phase.COMBAT_END)) { } else if (s.equals(Constant.Phase.COMBAT_END)) {
lbl = t.getFieldControllers().get(i).getView().getLblEndCombat(); lbl = t.getFieldControls().get(i).getView().getLblEndCombat();
} else if (s.equals(Constant.Phase.MAIN2)) { } else if (s.equals(Constant.Phase.MAIN2)) {
lbl = t.getFieldControllers().get(i).getView().getLblMain2(); lbl = t.getFieldControls().get(i).getView().getLblMain2();
} else if (s.equals(Constant.Phase.END_OF_TURN)) { } else if (s.equals(Constant.Phase.END_OF_TURN)) {
lbl = t.getFieldControllers().get(i).getView().getLblEndTurn(); lbl = t.getFieldControls().get(i).getView().getLblEndTurn();
} else if (s.equals(Constant.Phase.CLEANUP)) { } else if (s.equals(Constant.Phase.CLEANUP)) {
lbl = t.getFieldControllers().get(i).getView().getLblCleanup(); lbl = t.getFieldControls().get(i).getView().getLblCleanup();
} else { } else {
return; return;
} }
t.getController().resetAllPhaseButtons(); t.resetAllPhaseButtons();
// Could be a potential recursion bug here, but I checked and hopefully there isn't. Singletons.getView().getMatchView().repaint();
// Please remove this comments if > 1 week and no problems. Doublestrike 12-01-11
t.repaint();
// End potential recursion bug
lbl.setActive(true); lbl.setActive(true);
} }
} }

View File

@@ -36,8 +36,6 @@ import forge.card.staticability.StaticAbility;
import forge.game.GameLossReason; import forge.game.GameLossReason;
import forge.gui.GuiUtils; import forge.gui.GuiUtils;
import forge.util.MyRandom; import forge.util.MyRandom;
import forge.view.GuiTopLevel;
import forge.view.match.MatchTopLevel;
/** /**
* <p> * <p>
@@ -1284,7 +1282,7 @@ public abstract class Player extends GameEntity {
AllZone.getTriggerHandler().runTrigger("Drawn", runParams); AllZone.getTriggerHandler().runTrigger("Drawn", runParams);
} }
// lose: // lose:
else if (!Constant.Runtime.DEV_MODE[0] || AllZone.getDisplay().canLoseByDecking()) { else if (!Constant.Runtime.DEV_MODE[0] || Constant.Runtime.MILL[0]) {
// if devMode is off, or canLoseByDecking is Enabled, run Lose // if devMode is off, or canLoseByDecking is Enabled, run Lose
// Condition // Condition
if (!this.cantLose()) { if (!this.cantLose()) {
@@ -1812,9 +1810,7 @@ public abstract class Player extends GameEntity {
* @return a boolean. * @return a boolean.
*/ */
public final boolean canPlayLand() { public final boolean canPlayLand() {
if (Singletons.getView().getMatchView().getViewTabber().getLblUnlimitedLands().getEnabled() && this.isHuman() && Constant.Runtime.DEV_MODE[0]) {
final MatchTopLevel t = ((GuiTopLevel) AllZone.getDisplay()).getController().getMatchController().getView();
if (t.getTabberController().getView().getLblUnlimitedLands().getEnabled() && this.isHuman() && Constant.Runtime.DEV_MODE[0]) {
return PhaseHandler.canCastSorcery(this); return PhaseHandler.canCastSorcery(this);
} }

View File

@@ -84,7 +84,7 @@ public final class PlayerUtil {
if (AllZone.getHumanPlayer().getZone(Zone.Hand).size() == 0) { if (AllZone.getHumanPlayer().getZone(Zone.Hand).size() == 0) {
this.stop(); this.stop();
} }
AllZone.getDisplay().showMessage( Singletons.getControl().getMatchControl().showMessage(
"Select " + (nCards - this.n) + " cards to discard, unless you discard a " + uType + "."); "Select " + (nCards - this.n) + " cards to discard, unless you discard a " + uType + ".");
ButtonUtil.disableAll(); ButtonUtil.disableAll();
} }
@@ -144,7 +144,7 @@ public final class PlayerUtil {
this.stop(); this.stop();
} }
AllZone.getDisplay().showMessage("Select a card to discard"); Singletons.getControl().getMatchControl().showMessage("Select a card to discard");
ButtonUtil.disableAll(); ButtonUtil.disableAll();
} }
@@ -183,7 +183,7 @@ public final class PlayerUtil {
this.stop(); this.stop();
} }
AllZone.getDisplay().showMessage("Chains of Mephistopheles:\n" + "Select a card to discard"); Singletons.getControl().getMatchControl().showMessage("Chains of Mephistopheles:\n" + "Select a card to discard");
ButtonUtil.disableAll(); ButtonUtil.disableAll();
} }
@@ -281,7 +281,7 @@ public final class PlayerUtil {
return; return;
} }
AllZone.getDisplay().showMessage(message + " (" + (nCards - this.n) + " left)"); Singletons.getControl().getMatchControl().showMessage(message + " (" + (nCards - this.n) + " left)");
ButtonUtil.disableAll(); ButtonUtil.disableAll();
} }
@@ -324,7 +324,7 @@ public final class PlayerUtil {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage("Select a card to put on the " + topOrBottom + " of your library."); Singletons.getControl().getMatchControl().showMessage("Select a card to put on the " + topOrBottom + " of your library.");
ButtonUtil.disableAll(); ButtonUtil.disableAll();
if ((this.n == num) || (AllZone.getHumanPlayer().getZone(Zone.Hand).size() == 0)) { if ((this.n == num) || (AllZone.getHumanPlayer().getZone(Zone.Hand).size() == 0)) {

View File

@@ -17,6 +17,7 @@
*/ */
package forge; package forge;
import forge.control.FControl;
import forge.model.FModel; import forge.model.FModel;
import forge.view.FView; import forge.view.FView;
@@ -29,6 +30,8 @@ public final class Singletons {
private static FView view = null; private static FView view = null;
private static FControl control = null;
/** /**
* Do not instantiate. * Do not instantiate.
*/ */
@@ -74,4 +77,22 @@ public final class Singletons {
Singletons.view = theView; Singletons.view = theView;
} }
/**
* Gets the control.
*
* @return the view
*/
public static FControl getControl() {
return Singletons.control;
}
/**
* Sets the control.
*
* @param theControl
* the view to set
*/
public static void setControl(final FControl theControl) {
Singletons.control = theControl;
}
} }

View File

@@ -196,7 +196,7 @@ public class Untap extends Phase implements java.io.Serializable {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage("Select one tapped land to untap"); Singletons.getControl().getMatchControl().showMessage("Select one tapped land to untap");
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -244,7 +244,7 @@ public class Untap extends Phase implements java.io.Serializable {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage("Select one tapped artifact to untap"); Singletons.getControl().getMatchControl().showMessage("Select one tapped artifact to untap");
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -293,7 +293,7 @@ public class Untap extends Phase implements java.io.Serializable {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage("Select one creature to untap"); Singletons.getControl().getMatchControl().showMessage("Select one creature to untap");
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }

View File

@@ -486,7 +486,7 @@ public class Upkeep extends Phase implements java.io.Serializable {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage( Singletons.getControl().getMatchControl().showMessage(
abyss.getName() + " - Select one nonartifact creature to destroy"); abyss.getName() + " - Select one nonartifact creature to destroy");
ButtonUtil.disableAll(); ButtonUtil.disableAll();
} }
@@ -554,7 +554,7 @@ public class Upkeep extends Phase implements java.io.Serializable {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage( Singletons.getControl().getMatchControl().showMessage(
"Yawgmoth Demon - Select one artifact to sacrifice or be dealt 2 damage"); "Yawgmoth Demon - Select one artifact to sacrifice or be dealt 2 damage");
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -2303,7 +2303,7 @@ public class Upkeep extends Phase implements java.io.Serializable {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage( Singletons.getControl().getMatchControl().showMessage(
c.getName() + " - Select new target creature. (Click Cancel to remain as is.)"); c.getName() + " - Select new target creature. (Click Cancel to remain as is.)");
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -2375,7 +2375,7 @@ public class Upkeep extends Phase implements java.io.Serializable {
this.stop(); this.stop();
return; return;
} }
AllZone.getDisplay().showMessage( Singletons.getControl().getMatchControl().showMessage(
source.getName() + " - Select " + num source.getName() + " - Select " + num
+ " untapped artifact(s), creature(s), or land(s) you control"); + " untapped artifact(s), creature(s), or land(s) you control");
ButtonUtil.disableAll(); ButtonUtil.disableAll();
@@ -2424,7 +2424,7 @@ public class Upkeep extends Phase implements java.io.Serializable {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage(crd + " - Discard a card from your hand"); Singletons.getControl().getMatchControl().showMessage(crd + " - Discard a card from your hand");
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }

View File

@@ -36,6 +36,7 @@ import forge.Counters;
import forge.PhaseHandler; import forge.PhaseHandler;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.cardfactory.CardFactoryUtil; import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost; import forge.card.cost.Cost;
import forge.card.cost.CostUtil; import forge.card.cost.CostUtil;
@@ -1384,7 +1385,7 @@ public class AbilityFactoryCounters {
@Override @Override
public void showMessage() { public void showMessage() {
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
AllZone.getDisplay().showMessage("Proliferate: Choose permanents and/or players"); Singletons.getControl().getMatchControl().showMessage("Proliferate: Choose permanents and/or players");
} }
@Override @Override

View File

@@ -43,6 +43,7 @@ import forge.Counters;
import forge.GameActionUtil; import forge.GameActionUtil;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.cost.Cost; import forge.card.cost.Cost;
import forge.card.spellability.Ability; import forge.card.spellability.Ability;
import forge.card.spellability.AbilityActivated; import forge.card.spellability.AbilityActivated;
@@ -851,7 +852,7 @@ public abstract class AbstractCardFactory implements CardFactoryInterface {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage("Discard a land card (or select Mox Diamond to sacrifice it)"); Singletons.getControl().getMatchControl().showMessage("Discard a land card (or select Mox Diamond to sacrifice it)");
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -1223,7 +1224,7 @@ public abstract class AbstractCardFactory implements CardFactoryInterface {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append(card.getName()).append(" - Exile cards from hand. Currently, "); sb.append(card.getName()).append(" - Exile cards from hand. Currently, ");
sb.append(this.exiled.size()).append(" selected. (Press OK when done.)"); sb.append(this.exiled.size()).append(" selected. (Press OK when done.)");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableOnlyOK(); ButtonUtil.enableOnlyOK();
} }
@@ -1258,7 +1259,7 @@ public abstract class AbstractCardFactory implements CardFactoryInterface {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append(card.getName()).append(" - Returning cards to top of library."); sb.append(card.getName()).append(" - Returning cards to top of library.");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
// Then look at the exiled cards and put them on // Then look at the exiled cards and put them on
// top of your library in any order. // top of your library in any order.
@@ -1585,7 +1586,7 @@ public abstract class AbstractCardFactory implements CardFactoryInterface {
public void showMessage() { public void showMessage() {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append(cardName).append(" - Select an artifact on the battlefield"); sb.append(cardName).append(" - Select an artifact on the battlefield");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -1637,7 +1638,7 @@ public abstract class AbstractCardFactory implements CardFactoryInterface {
if (AllZone.getHumanPlayer().getZone(Constant.Zone.Hand).size() == 0) { if (AllZone.getHumanPlayer().getZone(Constant.Zone.Hand).size() == 0) {
this.stop(); this.stop();
} }
AllZone.getDisplay().showMessage(prompt); Singletons.getControl().getMatchControl().showMessage(prompt);
ButtonUtil.disableAll(); ButtonUtil.disableAll();
} }

View File

@@ -39,6 +39,7 @@ import forge.Counters;
import forge.GameActionUtil; import forge.GameActionUtil;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.AbilityFactory;
import forge.card.cost.Cost; import forge.card.cost.Cost;
import forge.card.spellability.Ability; import forge.card.spellability.Ability;
@@ -372,7 +373,7 @@ public class CardFactoryCreatures {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage("Select an artifact you control"); Singletons.getControl().getMatchControl().showMessage("Select an artifact you control");
ButtonUtil.disableAll(); ButtonUtil.disableAll();
} }
@@ -502,7 +503,7 @@ public class CardFactoryCreatures {
@Override @Override
public void showMessage() { public void showMessage() {
ButtonUtil.disableAll(); ButtonUtil.disableAll();
AllZone.getDisplay().showMessage("Exile a nonland card from your hand."); Singletons.getControl().getMatchControl().showMessage("Exile a nonland card from your hand.");
} }
@Override @Override
@@ -555,9 +556,9 @@ public class CardFactoryCreatures {
@Override @Override
public void showMessage() { public void showMessage() {
if (index[0] == 0) { if (index[0] == 0) {
AllZone.getDisplay().showMessage("Select target land you control."); Singletons.getControl().getMatchControl().showMessage("Select target land you control.");
} else { } else {
AllZone.getDisplay().showMessage("Select target land opponent controls."); Singletons.getControl().getMatchControl().showMessage("Select target land opponent controls.");
} }
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
@@ -1249,7 +1250,7 @@ public class CardFactoryCreatures {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage(msg); Singletons.getControl().getMatchControl().showMessage(msg);
ButtonUtil.enableOnlyOK(); ButtonUtil.enableOnlyOK();
} }
@@ -1665,7 +1666,7 @@ public class CardFactoryCreatures {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append(card.getName()).append(" - Reveal an artifact. Revealed "); sb.append(card.getName()).append(" - Reveal an artifact. Revealed ");
sb.append(this.revealed.size()).append(" so far. Click OK when done."); sb.append(this.revealed.size()).append(" so far. Click OK when done.");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableOnlyOK(); ButtonUtil.enableOnlyOK();
} }
@@ -1780,7 +1781,7 @@ public class CardFactoryCreatures {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append("Select up to 5 target permanents. Selected ("); sb.append("Select up to 5 target permanents. Selected (");
sb.append(targetPerms.size()).append(") so far. Click OK when done."); sb.append(targetPerms.size()).append(") so far. Click OK when done.");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableOnlyOK(); ButtonUtil.enableOnlyOK();
} }
@@ -1819,7 +1820,7 @@ public class CardFactoryCreatures {
public void showMessage() { public void showMessage() {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append(card.getName()).append(" - Select target player"); sb.append(card.getName()).append(" - Select target player");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -1877,7 +1878,7 @@ public class CardFactoryCreatures {
toDisplay += "Currently, (" + toSac.size() + ") selected with a total power of: " toDisplay += "Currently, (" + toSac.size() + ") selected with a total power of: "
+ getTotalPower(); + getTotalPower();
toDisplay += " Click OK when Done."; toDisplay += " Click OK when Done.";
AllZone.getDisplay().showMessage(toDisplay); Singletons.getControl().getMatchControl().showMessage(toDisplay);
ButtonUtil.enableAll(); ButtonUtil.enableAll();
} }
@@ -2095,7 +2096,7 @@ public class CardFactoryCreatures {
message += "or artifact "; message += "or artifact ";
} }
message += "on the battlefield"; message += "on the battlefield";
AllZone.getDisplay().showMessage(cardName + " - " + message); Singletons.getControl().getMatchControl().showMessage(cardName + " - " + message);
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -2335,7 +2336,7 @@ public class CardFactoryCreatures {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage(card + " - Select an artifact you control"); Singletons.getControl().getMatchControl().showMessage(card + " - Select an artifact you control");
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }

View File

@@ -32,6 +32,7 @@ import forge.Counters;
import forge.GameActionUtil; import forge.GameActionUtil;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.cost.Cost; import forge.card.cost.Cost;
import forge.card.spellability.Ability; import forge.card.spellability.Ability;
import forge.card.spellability.AbilityActivated; import forge.card.spellability.AbilityActivated;
@@ -208,7 +209,7 @@ class CardFactoryLands {
public void showMessage() { public void showMessage() {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append(cardName).append(" - Select an untapped land to sacrifice"); sb.append(cardName).append(" - Select an untapped land to sacrifice");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -226,7 +227,7 @@ class CardFactoryLands {
paid[0]++; paid[0]++;
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append(cardName).append(" - Select an untapped land to sacrifice"); sb.append(cardName).append(" - Select an untapped land to sacrifice");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
} else { } else {
this.stop(); this.stop();
} }
@@ -297,7 +298,7 @@ class CardFactoryLands {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage( Singletons.getControl().getMatchControl().showMessage(
cardName + " - Select one " + type[0] + " to sacrifice"); cardName + " - Select one " + type[0] + " to sacrifice");
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -390,7 +391,7 @@ class CardFactoryLands {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage( Singletons.getControl().getMatchControl().showMessage(
"Scorched Ruins - Select an untapped land to sacrifice"); "Scorched Ruins - Select an untapped land to sacrifice");
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -407,7 +408,7 @@ class CardFactoryLands {
AllZone.getGameAction().sacrifice(c); AllZone.getGameAction().sacrifice(c);
if (paid[0] < 1) { if (paid[0] < 1) {
paid[0]++; paid[0]++;
AllZone.getDisplay().showMessage( Singletons.getControl().getMatchControl().showMessage(
"Scorched Ruins - Select an untapped land to sacrifice"); "Scorched Ruins - Select an untapped land to sacrifice");
} else { } else {
this.stop(); this.stop();
@@ -485,7 +486,7 @@ class CardFactoryLands {
public void showMessage() { public void showMessage() {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append(card.getName()).append(" - Reveal a card."); sb.append(card.getName()).append(" - Reveal a card.");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -671,7 +672,7 @@ class CardFactoryLands {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append(cardName); sb.append(cardName);
sb.append(" - Select one non-Lair land to return to your hand"); sb.append(" - Select one non-Lair land to return to your hand");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -740,7 +741,7 @@ class CardFactoryLands {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append(card).append(" - Select one untapped "); sb.append(card).append(" - Select one untapped ");
sb.append(type[0]).append(" to return"); sb.append(type[0]).append(" to return");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }

View File

@@ -42,6 +42,7 @@ import forge.HandSizeOp;
import forge.Player; import forge.Player;
import forge.PlayerUtil; import forge.PlayerUtil;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.cost.Cost; import forge.card.cost.Cost;
import forge.card.spellability.AbilitySub; import forge.card.spellability.AbilitySub;
import forge.card.spellability.Spell; import forge.card.spellability.Spell;
@@ -116,9 +117,9 @@ public class CardFactorySorceries {
@Override @Override
public void showMessage() { public void showMessage() {
if (index[0] == 0) { if (index[0] == 0) {
AllZone.getDisplay().showMessage("Select target land you control."); Singletons.getControl().getMatchControl().showMessage("Select target land you control.");
} else { } else {
AllZone.getDisplay().showMessage("Select target land opponent controls."); Singletons.getControl().getMatchControl().showMessage("Select target land opponent controls.");
} }
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
@@ -608,7 +609,7 @@ public class CardFactorySorceries {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append("Select target ").append(humanBasic.get(this.count)); sb.append("Select target ").append(humanBasic.get(this.count));
sb.append(" land to not sacrifice"); sb.append(" land to not sacrifice");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
} }
@@ -1068,7 +1069,7 @@ public class CardFactorySorceries {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append("Select target creatures and/or players. Currently, "); sb.append("Select target creatures and/or players. Currently, ");
sb.append(this.getNumTargets()).append(" targets. Click OK when done."); sb.append(this.getNumTargets()).append(" targets. Click OK when done.");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
} }
private int getNumTargets() { private int getNumTargets() {
@@ -1102,11 +1103,11 @@ public class CardFactorySorceries {
@Override @Override
public void selectCard(final Card c, final PlayerZone zone) { public void selectCard(final Card c, final PlayerZone zone) {
if (!c.canBeTargetedBy(spell)) { if (!c.canBeTargetedBy(spell)) {
AllZone.getDisplay().showMessage("Cannot target this card."); Singletons.getControl().getMatchControl().showMessage("Cannot target this card.");
return; // cannot target return; // cannot target
} }
if (targets.contains(c)) { if (targets.contains(c)) {
AllZone.getDisplay().showMessage("You have already selected this target."); Singletons.getControl().getMatchControl().showMessage("You have already selected this target.");
return; // cannot target the same creature twice. return; // cannot target the same creature twice.
} }
@@ -1119,11 +1120,11 @@ public class CardFactorySorceries {
@Override @Override
public void selectPlayer(final Player player) { public void selectPlayer(final Player player) {
if (!player.canBeTargetedBy(spell)) { if (!player.canBeTargetedBy(spell)) {
AllZone.getDisplay().showMessage("Cannot target this player."); Singletons.getControl().getMatchControl().showMessage("Cannot target this player.");
return; // cannot target return; // cannot target
} }
if (targetPlayers.contains(player)) { if (targetPlayers.contains(player)) {
AllZone.getDisplay().showMessage("You have already selected this player."); Singletons.getControl().getMatchControl().showMessage("You have already selected this player.");
return; // cannot target the same player twice. return; // cannot target the same player twice.
} }
targetPlayers.add(player); targetPlayers.add(player);
@@ -1656,7 +1657,7 @@ public class CardFactorySorceries {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append(cardName).append(" - Select a target creature to gain Fear (up to "); sb.append(cardName).append(" - Select a target creature to gain Fear (up to ");
sb.append(this.stop - this.count).append(" more)"); sb.append(this.stop - this.count).append(" more)");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableAll(); ButtonUtil.enableAll();
} }
@@ -1698,7 +1699,7 @@ public class CardFactorySorceries {
public void showMessage() { public void showMessage() {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append(cardName).append(" - Select target creature to get -X/-X"); sb.append(cardName).append(" - Select target creature to get -X/-X");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -1779,7 +1780,7 @@ public class CardFactorySorceries {
public void showMessage() { public void showMessage() {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append(cardName).append(" - Select target player to lose life"); sb.append(cardName).append(" - Select target player to lose life");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }

View File

@@ -48,6 +48,7 @@ import forge.HandSizeOp;
import forge.PhaseHandler; import forge.PhaseHandler;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.AbilityFactory;
import forge.card.cost.Cost; import forge.card.cost.Cost;
import forge.card.mana.ManaCost; import forge.card.mana.ManaCost;
@@ -807,7 +808,7 @@ public class CardFactoryUtil {
if (spell.getTargetCard() != null) { if (spell.getTargetCard() != null) {
this.stop(); this.stop();
} }
AllZone.getDisplay().showMessage("Select target Spell: "); Singletons.getControl().getMatchControl().showMessage("Select target Spell: ");
final Card choice = GuiUtils.getChoiceOptional("Choose a Spell", choices.toArray()); final Card choice = GuiUtils.getChoiceOptional("Choose a Spell", choices.toArray());
if (choice != null) { if (choice != null) {
spell.setTargetCard(choice); spell.setTargetCard(choice);
@@ -855,7 +856,7 @@ public class CardFactoryUtil {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage(message); Singletons.getControl().getMatchControl().showMessage(message);
ButtonUtil.disableAll(); ButtonUtil.disableAll();
} }
@@ -1750,7 +1751,7 @@ public class CardFactoryUtil {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage(message); Singletons.getControl().getMatchControl().showMessage(message);
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -1762,7 +1763,7 @@ public class CardFactoryUtil {
@Override @Override
public void selectCard(final Card card, final PlayerZone zone) { public void selectCard(final Card card, final PlayerZone zone) {
if (targeted && !card.canBeTargetedBy(spell)) { if (targeted && !card.canBeTargetedBy(spell)) {
AllZone.getDisplay().showMessage("Cannot target this card (Shroud? Protection?)."); Singletons.getControl().getMatchControl().showMessage("Cannot target this card (Shroud? Protection?).");
} else if (choices.contains(card)) { } else if (choices.contains(card)) {
spell.setTargetCard(card); spell.setTargetCard(card);
if (spell.getManaCost().equals("0") || free) { if (spell.getManaCost().equals("0") || free) {
@@ -1807,7 +1808,7 @@ public class CardFactoryUtil {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage(message); Singletons.getControl().getMatchControl().showMessage(message);
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -1889,7 +1890,7 @@ public class CardFactoryUtil {
this.stop(); this.stop();
} }
AllZone.getDisplay().showMessage("Select a card to discard"); Singletons.getControl().getMatchControl().showMessage("Select a card to discard");
ButtonUtil.disableAll(); ButtonUtil.disableAll();
} }
@@ -1909,7 +1910,7 @@ public class CardFactoryUtil {
} }
void done() { void done() {
AllZone.getDisplay().showMessage("Returning cards to hand."); Singletons.getControl().getMatchControl().showMessage("Returning cards to hand.");
AllZone.getGameAction().exile(recall); AllZone.getGameAction().exile(recall);
final CardList grave = AllZone.getHumanPlayer().getCardsIn(Zone.Graveyard); final CardList grave = AllZone.getHumanPlayer().getCardsIn(Zone.Graveyard);
for (int i = 1; i <= this.n; i++) { for (int i = 1; i <= this.n; i++) {
@@ -1951,7 +1952,7 @@ public class CardFactoryUtil {
public void showMessage() { public void showMessage() {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append("Select target wolf to damage for ").append(spell.getSourceCard()); sb.append("Select target wolf to damage for ").append(spell.getSourceCard());
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -1993,7 +1994,7 @@ public class CardFactoryUtil {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage("Select target artifact creature"); Singletons.getControl().getMatchControl().showMessage("Select target artifact creature");
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -3504,7 +3505,7 @@ public class CardFactoryUtil {
public void showMessage() { public void showMessage() {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append("Select a ").append(type).append(" to untap"); sb.append("Select a ").append(type).append(" to untap");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
@@ -4724,7 +4725,7 @@ public class CardFactoryUtil {
@Override @Override
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage("Choose target creature to haunt."); Singletons.getControl().getMatchControl().showMessage("Choose target creature to haunt.");
ButtonUtil.disableAll(); ButtonUtil.disableAll();
} }
@@ -4738,7 +4739,7 @@ public class CardFactoryUtil {
AllZone.getStack().add(haunterDiesWork); AllZone.getStack().add(haunterDiesWork);
this.stop(); this.stop();
} else { } else {
AllZone.getDisplay().showMessage("Cannot target this card (Shroud? Protection?)."); Singletons.getControl().getMatchControl().showMessage("Cannot target this card (Shroud? Protection?).");
} }
} }
}; };

View File

@@ -27,13 +27,13 @@ import javax.swing.SwingUtilities;
import forge.AllZone; import forge.AllZone;
import forge.Card; import forge.Card;
import forge.CardReader; import forge.CardReader;
import forge.Singletons;
import forge.card.CardRules; import forge.card.CardRules;
import forge.error.ErrorViewer; import forge.error.ErrorViewer;
import forge.gui.GuiUtils; import forge.gui.GuiUtils;
import forge.item.CardDb; import forge.item.CardDb;
import forge.properties.ForgeProps; import forge.properties.ForgeProps;
import forge.properties.NewConstants; import forge.properties.NewConstants;
import forge.view.SplashFrame;
import forge.view.toolbox.FProgressBar; import forge.view.toolbox.FProgressBar;
/** /**
@@ -82,7 +82,7 @@ public class PreloadingCardFactory extends AbstractCardFactory {
try { try {
this.readCards(file); this.readCards(file);
final FProgressBar barProgress = Singletons.getView().getProgressBar(); final FProgressBar barProgress = SplashFrame.PROGRESS_BAR;
if (barProgress != null) { if (barProgress != null) {
SwingUtilities.invokeAndWait(new Runnable() { SwingUtilities.invokeAndWait(new Runnable() {
@Override @Override

View File

@@ -27,6 +27,7 @@ import forge.Constant;
import forge.Constant.Zone; import forge.Constant.Zone;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.AbilityFactory;
import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbility;
import forge.gui.input.Input; import forge.gui.input.Input;
@@ -325,7 +326,7 @@ public class CostDiscard extends CostPartWithList {
sb.append(nNeeded - this.nDiscard); sb.append(nNeeded - this.nDiscard);
sb.append(" remaining."); sb.append(" remaining.");
} }
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }

View File

@@ -31,6 +31,7 @@ import forge.Constant.Zone;
import forge.GameActionUtil; import forge.GameActionUtil;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.AbilityFactory;
import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbility;
import forge.gui.GuiUtils; import forge.gui.GuiUtils;
@@ -400,7 +401,7 @@ public class CostExile extends CostPartWithList {
this.typeList = sa.getActivatingPlayer().getCardsIn(part.getFrom()); this.typeList = sa.getActivatingPlayer().getCardsIn(part.getFrom());
this.typeList = this.typeList.getValidCards(type.split(";"), sa.getActivatingPlayer(), this.typeList = this.typeList.getValidCards(type.split(";"), sa.getActivatingPlayer(),
sa.getSourceCard()); sa.getSourceCard());
AllZone.getDisplay().showMessage(msg.toString()); Singletons.getControl().getMatchControl().showMessage(msg.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }

View File

@@ -27,6 +27,7 @@ import forge.Constant.Zone;
import forge.PhaseHandler; import forge.PhaseHandler;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.AbilityFactory;
import forge.card.mana.ManaCost; import forge.card.mana.ManaCost;
import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbility;
@@ -275,7 +276,7 @@ public class CostMana extends CostPart {
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }
AllZone.getDisplay().showMessage( Singletons.getControl().getMatchControl().showMessage(
"Pay X Mana Cost for " + sa.getSourceCard().getName() + "\n" + this.xPaid + " Paid so far."); "Pay X Mana Cost for " + sa.getSourceCard().getName() + "\n" + this.xPaid + " Paid so far.");
} }
@@ -472,7 +473,7 @@ public class CostMana extends CostPart {
public void showMessage() { public void showMessage() {
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
final String displayMana = this.mana.toString().replace("X", "").trim(); final String displayMana = this.mana.toString().replace("X", "").trim();
AllZone.getDisplay().showMessage("Pay Mana Cost: " + displayMana); Singletons.getControl().getMatchControl().showMessage("Pay Mana Cost: " + displayMana);
final StringBuilder msg = new StringBuilder("Pay Mana Cost: " + displayMana); final StringBuilder msg = new StringBuilder("Pay Mana Cost: " + displayMana);
if (this.phyLifeToLose > 0) { if (this.phyLifeToLose > 0) {
@@ -485,7 +486,7 @@ public class CostMana extends CostPart {
msg.append("\n(Click on your life total to pay life for phyrexian mana.)"); msg.append("\n(Click on your life total to pay life for phyrexian mana.)");
} }
AllZone.getDisplay().showMessage(msg.toString()); Singletons.getControl().getMatchControl().showMessage(msg.toString());
if (this.mana.isPaid()) { if (this.mana.isPaid()) {
this.done(); this.done();
} }

View File

@@ -17,7 +17,6 @@
*/ */
package forge.card.cost; package forge.card.cost;
import forge.AllZone;
import forge.ButtonUtil; import forge.ButtonUtil;
import forge.Card; import forge.Card;
import forge.CardList; import forge.CardList;
@@ -25,6 +24,7 @@ import forge.Constant.Zone;
import forge.Counters; import forge.Counters;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.AbilityFactory;
import forge.card.cardfactory.CardFactoryUtil; import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbility;
@@ -271,7 +271,7 @@ public class CostPutCounter extends CostPartWithList {
this.typeList = sa.getActivatingPlayer().getCardsIn(Zone.Battlefield); this.typeList = sa.getActivatingPlayer().getCardsIn(Zone.Battlefield);
this.typeList = this.typeList.getValidCards(type.split(";"), sa.getActivatingPlayer(), this.typeList = this.typeList.getValidCards(type.split(";"), sa.getActivatingPlayer(),
sa.getSourceCard()); sa.getSourceCard());
AllZone.getDisplay().showMessage(msg.toString()); Singletons.getControl().getMatchControl().showMessage(msg.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }

View File

@@ -28,6 +28,7 @@ import forge.ComputerUtil;
import forge.Constant.Zone; import forge.Constant.Zone;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.AbilityFactory;
import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbility;
import forge.gui.input.Input; import forge.gui.input.Input;
@@ -231,7 +232,7 @@ public class CostReturn extends CostPartWithList {
this.typeList = sa.getActivatingPlayer().getCardsIn(Zone.Battlefield); this.typeList = sa.getActivatingPlayer().getCardsIn(Zone.Battlefield);
this.typeList = this.typeList.getValidCards(type.split(";"), sa.getActivatingPlayer(), this.typeList = this.typeList.getValidCards(type.split(";"), sa.getActivatingPlayer(),
sa.getSourceCard()); sa.getSourceCard());
AllZone.getDisplay().showMessage(msg.toString()); Singletons.getControl().getMatchControl().showMessage(msg.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }

View File

@@ -26,6 +26,7 @@ import forge.Constant;
import forge.Constant.Zone; import forge.Constant.Zone;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.AbilityFactory;
import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbility;
import forge.gui.GuiUtils; import forge.gui.GuiUtils;
@@ -256,7 +257,7 @@ public class CostReveal extends CostPartWithList {
sb.append(nNeeded - this.nReveal); sb.append(nNeeded - this.nReveal);
sb.append(" remaining."); sb.append(" remaining.");
} }
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }

View File

@@ -28,6 +28,7 @@ import forge.ComputerUtil;
import forge.Constant.Zone; import forge.Constant.Zone;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.AbilityFactory;
import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbility;
import forge.gui.input.Input; import forge.gui.input.Input;
@@ -273,7 +274,7 @@ public class CostSacrifice extends CostPartWithList {
msg.append("s"); msg.append("s");
} }
AllZone.getDisplay().showMessage(msg.toString()); Singletons.getControl().getMatchControl().showMessage(msg.toString());
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }

View File

@@ -17,7 +17,6 @@
*/ */
package forge.card.cost; package forge.card.cost;
import forge.AllZone;
import forge.ButtonUtil; import forge.ButtonUtil;
import forge.Card; import forge.Card;
import forge.CardList; import forge.CardList;
@@ -27,6 +26,7 @@ import forge.Constant;
import forge.Constant.Zone; import forge.Constant.Zone;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.abilityfactory.AbilityFactory; import forge.card.abilityfactory.AbilityFactory;
import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbility;
import forge.gui.input.Input; import forge.gui.input.Input;
@@ -243,7 +243,7 @@ public class CostTapType extends CostPartWithList {
} }
final int left = nCards - this.nTapped; final int left = nCards - this.nTapped;
AllZone.getDisplay() Singletons.getControl().getMatchControl()
.showMessage("Select a " + tapType.getDescription() + " to tap (" + left + " left)"); .showMessage("Select a " + tapType.getDescription() + " to tap (" + left + " left)");
ButtonUtil.enableOnlyCancel(); ButtonUtil.enableOnlyCancel();
} }

View File

@@ -30,6 +30,7 @@ import forge.Constant;
import forge.Constant.Zone; import forge.Constant.Zone;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.gui.GuiUtils; import forge.gui.GuiUtils;
import forge.gui.input.Input; import forge.gui.input.Input;
@@ -329,7 +330,7 @@ public class TargetSelection {
sb.append("\n"); sb.append("\n");
sb.append(tgt.getVTSelection()); sb.append(tgt.getVTSelection());
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
// If reached Minimum targets, enable OK button // If reached Minimum targets, enable OK button
if (!tgt.isMinTargetsChosen(sa.getSourceCard(), sa)) { if (!tgt.isMinTargetsChosen(sa.getSourceCard(), sa)) {
@@ -361,7 +362,7 @@ public class TargetSelection {
// leave this in temporarily, there some seriously wrong things // leave this in temporarily, there some seriously wrong things
// going on here // going on here
if (targeted && !card.canBeTargetedBy(sa)) { if (targeted && !card.canBeTargetedBy(sa)) {
AllZone.getDisplay().showMessage("Cannot target this card (Shroud? Protection? Restrictions?)."); Singletons.getControl().getMatchControl().showMessage("Cannot target this card (Shroud? Protection? Restrictions?).");
} else if (choices.contains(card)) { } else if (choices.contains(card)) {
tgt.addTarget(card); tgt.addTarget(card);
this.done(); this.done();

View File

@@ -1,16 +1,16 @@
package forge.control; package forge.control;
import forge.view.home.HomeTopLevel; import forge.view.ViewHomeUI;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *
*/ */
public class ControlHomeUI { public class ControlHomeUI {
private HomeTopLevel view; private ViewHomeUI view;
/** @param v0 &emsp; HomeTopLevel */ /** @param v0 &emsp; ViewHomeUI */
public ControlHomeUI(HomeTopLevel v0) { public ControlHomeUI(ViewHomeUI v0) {
view = v0; view = v0;
} }
@@ -19,8 +19,8 @@ public class ControlHomeUI {
System.exit(0); System.exit(0);
} }
/** @return HomeTopLevel */ /** @return ViewHomeUI */
public HomeTopLevel getView() { public ViewHomeUI getView() {
return view; return view;
} }
} }

View File

@@ -17,24 +17,38 @@
*/ */
package forge.control; package forge.control;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import forge.AllZone; import forge.AllZone;
import forge.Card;
import forge.CardContainer;
import forge.CardList;
import forge.Constant;
import forge.Constant.Zone; import forge.Constant.Zone;
import forge.GuiMultipleBlockers;
import forge.ImageCache; import forge.ImageCache;
import forge.Player; import forge.Player;
import forge.Singletons;
import forge.control.match.ControlDetail;
import forge.control.match.ControlDock;
import forge.control.match.ControlField; import forge.control.match.ControlField;
import forge.view.match.MatchTopLevel; import forge.control.match.ControlHand;
import forge.control.match.ControlMessage;
import forge.control.match.ControlPicture;
import forge.control.match.ControlTabber;
import forge.view.ViewMatchUI;
import forge.view.match.ViewField;
/** /**
* <p> * <p>
* ControlMatchUI * ControlMatchUI
* </p> * </p>
* Top-level controller for matches. Implements Display. * Top-level controller for matches.
* *
*/ */
public class ControlMatchUI { public class ControlMatchUI implements CardContainer {
private final MatchTopLevel view; private final ViewMatchUI view;
/** /**
* <p> * <p>
@@ -51,9 +65,9 @@ public class ControlMatchUI {
* So, this class must be called after everything is already in place. * So, this class must be called after everything is already in place.
* *
* @param v * @param v
* &emsp; A MatchTopLevel object * &emsp; A ViewMatchUI object
*/ */
public ControlMatchUI(final MatchTopLevel v) { public ControlMatchUI(final ViewMatchUI v) {
this.view = v; this.view = v;
} }
@@ -64,17 +78,16 @@ public class ControlMatchUI {
public void initMatch() { public void initMatch() {
// All child components have been assembled; observers and listeners can // All child components have been assembled; observers and listeners can
// be added safely. // be added safely.
this.view.getTabberController().addObservers(); ControlMatchUI.this.getTabberControl().addObservers();
this.view.getTabberController().addListeners(); ControlMatchUI.this.getTabberControl().addListeners();
this.view.getInputController().addListeners(); ControlMatchUI.this.getMessageControl().addListeners();
this.view.getHandController().addObservers(); ControlMatchUI.this.getHandControl().addObservers();
this.view.getHandController().addListeners(); ControlMatchUI.this.getHandControl().addListeners();
// Update all observers with values for start of match. // Update all observers with values for start of match.
final List<ControlField> fieldControllers = this.view.getFieldControllers(); for (final ControlField f : ControlMatchUI.this.getFieldControls()) {
for (final ControlField f : fieldControllers) {
f.addObservers(); f.addObservers();
f.addListeners(); f.addListeners();
f.getPlayer().updateObservers(); f.getPlayer().updateObservers();
@@ -85,7 +98,7 @@ public class ControlMatchUI {
AllZone.getStack().updateObservers(); AllZone.getStack().updateObservers();
AllZone.getHumanPlayer().getZone(Zone.Battlefield).updateObservers(); AllZone.getHumanPlayer().getZone(Zone.Battlefield).updateObservers();
AllZone.getInputControl().updateObservers(); AllZone.getInputControl().updateObservers();
this.view.getTabberController().updateObservers(); ControlMatchUI.this.getTabberControl().updateObservers();
} }
/** /**
@@ -115,15 +128,190 @@ public class ControlMatchUI {
// This method is in the top-level controller because it affects ALL fields // This method is in the top-level controller because it affects ALL fields
// (not just one). // (not just one).
public void resetAllPhaseButtons() { public void resetAllPhaseButtons() {
final List<ControlField> fieldControllers = this.view.getFieldControllers(); for (final ControlField c : ControlMatchUI.this.getFieldControls()) {
for (final ControlField c : fieldControllers) {
c.resetPhaseButtons(); c.resetPhaseButtons();
} }
} }
/** @return MatchTopLevel */ /** @param s0 &emsp; {@link java.lang.String} */
public MatchTopLevel getView() { public void showMessage(final String s0) {
return view; getMessageControl().setMessage(s0);
}
/** */
public void showStack() {
ControlMatchUI.this.getTabberControl().showPnlStack();
}
/** @param s0 &emsp; {@link java.lang.String} */
public void showCombat(final String s0) {
ControlMatchUI.this.getTabberControl().getView().updateCombat(s0);
}
/**
* Gets the detail controller.
*
* @return ControlDetail
*/
public ControlDetail getDetailControl() {
return view.getViewDetail().getControl();
}
/**
* Gets the picture controller.
*
* @return ControlPicture
*/
public ControlPicture getPictureControl() {
return view.getViewPicture().getControl();
}
/**
* Gets the tabber controller.
*
* @return ControlTabber
*/
public ControlTabber getTabberControl() {
return view.getViewTabber().getControl();
}
/**
* Gets the input controller.
*
* @return ControlMessage
*/
public ControlMessage getMessageControl() {
return view.getViewMessage().getControl();
}
/**
* Gets the hand controller.
*
* @return ControlHand
*/
public ControlHand getHandControl() {
return view.getViewHand().getControl();
}
/**
* Gets the dock controller.
*
* @return ControlDock
*/
public ControlDock getDockControl() {
return view.getDockView().getControl();
}
/**
* Gets the field controllers.
*
* @return List<ControlField>
*/
public List<ControlField> getFieldControls() {
final List<ViewField> fields = view.getViewBattlefield().getFields();
final List<ControlField> controllers = new ArrayList<ControlField>();
for (final ViewField f : fields) {
controllers.add(f.getControl());
}
return controllers;
}
/**
* Fires up trample dialog. Very old code, due for refactoring with new UI.
* Could possibly move to view.
*
* @param attacker &emsp; {@link forge.Card}
* @param blockers &emsp; {@link forge.CardList}
* @param damage &emsp; int
*/
public void assignDamage(final Card attacker, final CardList blockers, final int damage) {
if (damage <= 0) {
return;
}
new GuiMultipleBlockers(attacker, blockers, damage);
}
/**
*
* Checks if game control should stop at a phase, for either
* a forced programmatic stop, or a user-induced phase toggle.
* @param turn &emsp; {@link forge.Player}
* @param phase &emsp; {@link java.lang.String}
* @return boolean
*/
public final boolean stopAtPhase(final Player turn, final String phase) {
final List<ControlField> fieldControllers = ControlMatchUI.this.getFieldControls();
// AI field is at index [0]
if (turn.isComputer()) {
if (phase.equals(Constant.Phase.UPKEEP)) {
return fieldControllers.get(0).getView().getLblUpkeep().getEnabled();
} else if (phase.equals(Constant.Phase.DRAW)) {
return fieldControllers.get(0).getView().getLblDraw().getEnabled();
} else if (phase.equals(Constant.Phase.MAIN1)) {
return fieldControllers.get(0).getView().getLblMain1().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_BEGIN)) {
return fieldControllers.get(0).getView().getLblBeginCombat().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_DECLARE_ATTACKERS)) {
return fieldControllers.get(0).getView().getLblDeclareAttackers().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_DECLARE_BLOCKERS)) {
return fieldControllers.get(0).getView().getLblDeclareBlockers().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_FIRST_STRIKE_DAMAGE)) {
return fieldControllers.get(0).getView().getLblFirstStrike().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_DAMAGE)) {
return fieldControllers.get(0).getView().getLblCombatDamage().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_END)) {
return fieldControllers.get(0).getView().getLblEndCombat().getEnabled();
} else if (phase.equals(Constant.Phase.MAIN2)) {
return fieldControllers.get(0).getView().getLblMain2().getEnabled();
} else if (phase.equals(Constant.Phase.END_OF_TURN)) {
return fieldControllers.get(0).getView().getLblEndTurn().getEnabled();
} else if (phase.equals(Constant.Phase.DRAW)) {
return fieldControllers.get(0).getView().getLblDraw().getEnabled();
}
}
// Human field is at index [1]
else {
if (phase.equals(Constant.Phase.UPKEEP)) {
return fieldControllers.get(1).getView().getLblUpkeep().getEnabled();
} else if (phase.equals(Constant.Phase.DRAW)) {
return fieldControllers.get(1).getView().getLblDraw().getEnabled();
} else if (phase.equals(Constant.Phase.MAIN1)) {
return fieldControllers.get(1).getView().getLblMain1().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_BEGIN)) {
return fieldControllers.get(1).getView().getLblBeginCombat().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_DECLARE_ATTACKERS)) {
return fieldControllers.get(1).getView().getLblDeclareAttackers().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_DECLARE_BLOCKERS)) {
return fieldControllers.get(1).getView().getLblDeclareBlockers().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_FIRST_STRIKE_DAMAGE)) {
return fieldControllers.get(1).getView().getLblFirstStrike().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_DAMAGE)) {
return fieldControllers.get(1).getView().getLblCombatDamage().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_END)) {
return fieldControllers.get(1).getView().getLblEndCombat().getEnabled();
} else if (phase.equals(Constant.Phase.MAIN2)) {
return fieldControllers.get(1).getView().getLblMain2().getEnabled();
} else if (phase.equals(Constant.Phase.END_OF_TURN)) {
return fieldControllers.get(1).getView().getLblEndTurn().getEnabled();
} else if (phase.equals(Constant.Phase.DRAW)) {
return fieldControllers.get(1).getView().getLblDraw().getEnabled();
}
}
return true;
}
@Override
public void setCard(final Card c) {
Singletons.getControl().getMatchControl().getDetailControl().showCard(c);
Singletons.getControl().getMatchControl().getPictureControl().showCard(c);
}
@Override
public Card getCard() {
return Singletons.getControl().getMatchControl().getDetailControl().getCurrentCard();
} }
} }

View File

@@ -22,17 +22,14 @@ import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent; import java.awt.event.ComponentEvent;
import java.awt.event.WindowAdapter; import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent; import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.util.List; import java.util.List;
import javax.swing.JLayeredPane; import javax.swing.JLayeredPane;
import javax.swing.WindowConstants; import javax.swing.WindowConstants;
import forge.Singletons;
import forge.control.KeyboardShortcuts.Shortcut; import forge.control.KeyboardShortcuts.Shortcut;
import forge.view.GuiTopLevel;
import forge.view.bazaar.BazaarTopLevel;
import forge.view.editor.EditorTopLevel;
import forge.view.home.HomeTopLevel;
import forge.view.match.MatchTopLevel;
/** /**
* <p> * <p>
@@ -42,17 +39,12 @@ import forge.view.match.MatchTopLevel;
* between various display states in that JFrame. Controllers are instantiated * between various display states in that JFrame. Controllers are instantiated
* separately by each state's top level view class. * separately by each state's top level view class.
*/ */
public class FControl { public final class FControl {
private final JLayeredPane display;
private final GuiTopLevel view;
private List<Shortcut> shortcuts; private List<Shortcut> shortcuts;
private JLayeredPane display;
private int state; private int state;
private HomeTopLevel home = null; private WindowListener waDefault, waConcede, waLeaveBazaar;
private MatchTopLevel match = null;
private EditorTopLevel editor = null;
private WindowAdapter waDefault, waConcede, waLeaveBazaar;
private BazaarTopLevel bazaar;
/** */ /** */
public static final int HOME_SCREEN = 0; public static final int HOME_SCREEN = 0;
@@ -70,21 +62,14 @@ public class FControl {
* Controls all Forge UI functionality inside one JFrame. This class * Controls all Forge UI functionality inside one JFrame. This class
* switches between various display states in that JFrame. Controllers are * switches between various display states in that JFrame. Controllers are
* instantiated separately by each state's top level view class. * instantiated separately by each state's top level view class.
*
* @param v0 &emsp; GuiTopLevel
*/ */
public FControl(GuiTopLevel v0) { public FControl() {
this.view = v0;
this.display = (JLayeredPane) this.view.getContentPane();
this.shortcuts = KeyboardShortcuts.attachKeyboardShortcuts(this.view);
// "Close" button override during match // "Close" button override during match
this.waConcede = new WindowAdapter() { this.waConcede = new WindowAdapter() {
@Override @Override
public void windowClosing(final WindowEvent e) { public void windowClosing(final WindowEvent e) {
view.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); Singletons.getView().setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
getMatchView().getDockController().concede(); Singletons.getControl().getMatchControl().getDockControl().concede();
} }
}; };
@@ -92,25 +77,31 @@ public class FControl {
this.waLeaveBazaar = new WindowAdapter() { this.waLeaveBazaar = new WindowAdapter() {
@Override @Override
public void windowClosing(final WindowEvent e) { public void windowClosing(final WindowEvent e) {
view.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); Singletons.getView().setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
changeState(0); changeState(0);
getHomeView().showQuestMenu(); Singletons.getView().getHomeView().showQuestMenu();
} }
}; };
// Default action on window close // Default action on window close
this.waDefault = new WindowAdapter() { this.waDefault = new WindowAdapter() {
public void windowClosing(WindowEvent e) { public void windowClosing(WindowEvent e) {
view.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); Singletons.getView().setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
} }
}; };
}
// Handles resizing in null layouts of layers in JLayeredPane. /** After view and model have been initialized, control can start. */
view.addComponentListener(new ComponentAdapter() { public void initialize() {
@Override this.shortcuts = KeyboardShortcuts.attachKeyboardShortcuts();
public void componentResized(final ComponentEvent e) { this.display = Singletons.getView().getLayeredContentPane();
sizeChildren();
} // Handles resizing in null layouts of layers in JLayeredPane.
Singletons.getView().addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(final ComponentEvent e) {
sizeChildren();
}
}); });
} }
@@ -124,84 +115,61 @@ public class FControl {
* &emsp; State index: 0 for home, 1 for match, etc. * &emsp; State index: 0 for home, 1 for match, etc.
*/ */
public void changeState(final int i0) { public void changeState(final int i0) {
this.home = null; clearChildren(JLayeredPane.DEFAULT_LAYER);
this.match = null;
this.editor = null;
this.state = i0; this.state = i0;
this.display.removeAll(); /// out out out ghandi asdf
this.view.removeWindowListener(waConcede); Singletons.getView().removeWindowListener(waConcede);
this.view.removeWindowListener(waLeaveBazaar); Singletons.getView().removeWindowListener(waLeaveBazaar);
this.view.addWindowListener(waDefault); Singletons.getView().addWindowListener(waDefault);
this.view.addOverlay(); ////////////////
// Fire up new state // Fire up new state
switch (i0) { switch (i0) {
case HOME_SCREEN: case HOME_SCREEN:
this.home = new HomeTopLevel(); display.add(Singletons.getView().getHomeView(), JLayeredPane.DEFAULT_LAYER);
this.display.add(this.home, JLayeredPane.DEFAULT_LAYER);
sizeChildren(); sizeChildren();
break; break;
case MATCH_SCREEN: case MATCH_SCREEN:
this.match = new MatchTopLevel(); display.add(Singletons.getView().getMatchView(), JLayeredPane.DEFAULT_LAYER);
this.display.add(this.match, JLayeredPane.DEFAULT_LAYER);
sizeChildren(); sizeChildren();
view.addWindowListener(waConcede); Singletons.getView().addWindowListener(waConcede);
break; break;
case DEFAULT_EDITOR: case DEFAULT_EDITOR:
this.editor = new EditorTopLevel(); display.add(Singletons.getView().getEditorView(), JLayeredPane.DEFAULT_LAYER);
this.display.add(this.editor);
break; break;
case QUEST_BAZAAR: case QUEST_BAZAAR:
this.bazaar = new BazaarTopLevel(); display.add(Singletons.getView().getBazaarView(), JLayeredPane.DEFAULT_LAYER);
this.display.add(bazaar, JLayeredPane.DEFAULT_LAYER);
sizeChildren(); sizeChildren();
view.addWindowListener(waLeaveBazaar); Singletons.getView().addWindowListener(waLeaveBazaar);
break; break;
default: default:
break;
} }
} }
/** /** Gets the match controller.
* Gets the match view. * @return {@link forge.control.match.ControlMatchUI}
*
* @return MatchTopLevel
*/ */
public MatchTopLevel getMatchView() { public ControlMatchUI getMatchControl() {
return this.match; if (getState() != FControl.MATCH_SCREEN) {
throw new IllegalArgumentException("FControl$getMatchControl\n"
+ "may only be called while the match UI is showing.");
}
return Singletons.getView().getMatchView().getControl();
} }
/** /** Gets the home controller.
* Gets the match controller. * @return {@link forge.control.home.ControlHomeUI} */
* public ControlHomeUI getHomeControl() {
* @return ControlMatchUI if (getState() != FControl.HOME_SCREEN) {
*/ throw new IllegalArgumentException("FControl$getHomeControl\n"
public ControlMatchUI getMatchController() { + "may only be called while the home UI is showing.");
return this.match.getController(); }
} return Singletons.getView().getHomeView().getControl();
/** @return HomeTopLevel */
public HomeTopLevel getHomeView() {
return this.home;
}
/** @return HomeTopLevel */
public ControlHomeUI getHomeController() {
return this.home.getController();
}
/**
* Gets the match view.
*
* @return MatchTopLevel
*/
public BazaarTopLevel getBazaarView() {
return this.bazaar;
} }
/** /**
@@ -219,16 +187,24 @@ public class FControl {
return this.shortcuts; return this.shortcuts;
} }
/** Remove all children from a specified layer. */
private void clearChildren(final int layer0) {
final Component[] children = Singletons.getView()
.getLayeredContentPane().getComponentsInLayer(layer0);
for (Component c : children) {
display.remove(c);
}
}
/** Sizes children of JLayeredPane to fully fit their layers. */ /** Sizes children of JLayeredPane to fully fit their layers. */
private void sizeChildren() { private void sizeChildren() {
Component[] children; Component[] children = display.getComponentsInLayer(JLayeredPane.DEFAULT_LAYER);
children = FControl.this.display.getComponentsInLayer(JLayeredPane.DEFAULT_LAYER);
if (children.length == 0) { return; } if (children.length == 0) { return; }
children[0].setSize(display.getSize());
children[0].setSize(FControl.this.display.getSize()); children = display.getComponentsInLayer(JLayeredPane.MODAL_LAYER);
if (children.length == 0) { return; }
children = FControl.this.display.getComponentsInLayer(JLayeredPane.MODAL_LAYER); children[0].setSize(display.getSize());
children[0].setSize(FControl.this.display.getSize());
} }
} }

View File

@@ -17,7 +17,6 @@ import org.apache.commons.lang3.StringUtils;
import forge.Singletons; import forge.Singletons;
import forge.properties.ForgePreferences.FPref; import forge.properties.ForgePreferences.FPref;
import forge.view.GuiTopLevel;
import forge.view.home.ViewSettings.KeyboardShortcutField; import forge.view.home.ViewSettings.KeyboardShortcutField;
/** /**
@@ -32,12 +31,11 @@ public class KeyboardShortcuts {
* Attaches all keyboard shortcuts for match UI, * Attaches all keyboard shortcuts for match UI,
* and returns a list of shortcuts with necessary properties for later access. * and returns a list of shortcuts with necessary properties for later access.
* *
* @param frame GuiTopLevel (must be passed here since AllZone hasn't been set yet).
* @return List<Shortcut> Shortcut objects * @return List<Shortcut> Shortcut objects
*/ */
@SuppressWarnings("serial") @SuppressWarnings("serial")
public static List<Shortcut> attachKeyboardShortcuts(final GuiTopLevel frame) { public static List<Shortcut> attachKeyboardShortcuts() {
final JComponent c = (JComponent) frame.getContentPane(); final JComponent c = (JComponent) Singletons.getView().getContentPane();
final InputMap im = c.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); final InputMap im = c.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
final ActionMap am = c.getActionMap(); final ActionMap am = c.getActionMap();
@@ -50,8 +48,8 @@ public class KeyboardShortcuts {
final Action actShowStack = new AbstractAction() { final Action actShowStack = new AbstractAction() {
@Override @Override
public void actionPerformed(final ActionEvent e) { public void actionPerformed(final ActionEvent e) {
if (frame.getController().getState() != 1) { return; } if (Singletons.getControl().getState() != 1) { return; }
frame.getController().getMatchController().getView().getTabberController().showPnlStack(); Singletons.getControl().getMatchControl().getTabberControl().showPnlStack();
} }
}; };
@@ -59,8 +57,8 @@ public class KeyboardShortcuts {
final Action actShowCombat = new AbstractAction() { final Action actShowCombat = new AbstractAction() {
@Override @Override
public void actionPerformed(final ActionEvent e) { public void actionPerformed(final ActionEvent e) {
if (frame.getController().getState() != 1) { return; } if (Singletons.getControl().getState() != 1) { return; }
frame.getController().getMatchController().getView().getTabberController().showPnlCombat(); Singletons.getControl().getMatchControl().getTabberControl().showPnlCombat();
} }
}; };
@@ -68,8 +66,8 @@ public class KeyboardShortcuts {
final Action actShowConsole = new AbstractAction() { final Action actShowConsole = new AbstractAction() {
@Override @Override
public void actionPerformed(final ActionEvent e) { public void actionPerformed(final ActionEvent e) {
if (frame.getController().getState() != 1) { return; } if (Singletons.getControl().getState() != 1) { return; }
frame.getController().getMatchController().getView().getTabberController().showPnlGameLog(); Singletons.getControl().getMatchControl().getTabberControl().showPnlGameLog();
} }
}; };
@@ -77,8 +75,8 @@ public class KeyboardShortcuts {
final Action actShowPlayers = new AbstractAction() { final Action actShowPlayers = new AbstractAction() {
@Override @Override
public void actionPerformed(final ActionEvent e) { public void actionPerformed(final ActionEvent e) {
if (frame.getController().getState() != 1) { return; } if (Singletons.getControl().getState() != 1) { return; }
frame.getController().getMatchController().getView().getTabberController().showPnlPlayers(); Singletons.getControl().getMatchControl().getTabberControl().showPnlPlayers();
} }
}; };
@@ -86,8 +84,8 @@ public class KeyboardShortcuts {
final Action actShowDev = new AbstractAction() { final Action actShowDev = new AbstractAction() {
@Override @Override
public void actionPerformed(final ActionEvent e) { public void actionPerformed(final ActionEvent e) {
if (frame.getController().getState() != 1) { return; } if (Singletons.getControl().getState() != 1) { return; }
frame.getController().getMatchController().getView().getTabberController().showPnlDev(); Singletons.getControl().getMatchControl().getTabberControl().showPnlDev();
} }
}; };
@@ -95,8 +93,8 @@ public class KeyboardShortcuts {
final Action actConcede = new AbstractAction() { final Action actConcede = new AbstractAction() {
@Override @Override
public void actionPerformed(final ActionEvent e) { public void actionPerformed(final ActionEvent e) {
if (frame.getController().getState() != 1) { return; } if (Singletons.getControl().getState() != 1) { return; }
frame.getController().getMatchController().getView().getDockController().concede(); Singletons.getControl().getMatchControl().getDockControl().concede();
} }
}; };

View File

@@ -25,6 +25,7 @@ import forge.CardList;
import forge.Command; import forge.Command;
import forge.Constant; import forge.Constant;
import forge.PlayerType; import forge.PlayerType;
import forge.Singletons;
import forge.control.FControl; import forge.control.FControl;
import forge.deck.Deck; import forge.deck.Deck;
import forge.deck.generate.Generate2ColorDeck; import forge.deck.generate.Generate2ColorDeck;
@@ -33,7 +34,6 @@ import forge.deck.generate.Generate5ColorDeck;
import forge.deck.generate.GenerateThemeDeck; import forge.deck.generate.GenerateThemeDeck;
import forge.game.GameType; import forge.game.GameType;
import forge.item.CardPrinted; import forge.item.CardPrinted;
import forge.view.GuiTopLevel;
import forge.view.home.ViewConstructed; import forge.view.home.ViewConstructed;
/** /**
@@ -534,9 +534,8 @@ public class ControlConstructed {
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
@Override @Override
public void run() { public void run() {
GuiTopLevel g = ((GuiTopLevel) AllZone.getDisplay()); Singletons.getControl().changeState(FControl.MATCH_SCREEN);
g.getController().changeState(FControl.MATCH_SCREEN); Singletons.getControl().getMatchControl().initMatch();
g.getController().getMatchController().initMatch();
AllZone.getGameAction().newGame(Constant.Runtime.HUMAN_DECK[0], Constant.Runtime.COMPUTER_DECK[0]); AllZone.getGameAction().newGame(Constant.Runtime.HUMAN_DECK[0], Constant.Runtime.COMPUTER_DECK[0]);
} }

View File

@@ -12,6 +12,7 @@ import javax.swing.SwingUtilities;
import forge.AllZone; import forge.AllZone;
import forge.Constant; import forge.Constant;
import forge.Singletons;
import forge.control.FControl; import forge.control.FControl;
import forge.deck.Deck; import forge.deck.Deck;
import forge.game.GameType; import forge.game.GameType;
@@ -19,7 +20,6 @@ import forge.game.limited.BoosterDraft;
import forge.game.limited.CardPoolLimitation; import forge.game.limited.CardPoolLimitation;
import forge.gui.GuiUtils; import forge.gui.GuiUtils;
import forge.gui.deckeditor.DeckEditorDraft; import forge.gui.deckeditor.DeckEditorDraft;
import forge.view.GuiTopLevel;
import forge.view.home.ViewDraft; import forge.view.home.ViewDraft;
import forge.view.toolbox.FSkin; import forge.view.toolbox.FSkin;
@@ -144,9 +144,8 @@ public class ControlDraft {
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
@Override @Override
public void run() { public void run() {
GuiTopLevel g = (GuiTopLevel) AllZone.getDisplay(); Singletons.getControl().changeState(FControl.MATCH_SCREEN);
g.getController().changeState(FControl.MATCH_SCREEN); Singletons.getControl().getMatchControl().initMatch();
g.getController().getMatchController().initMatch();
AllZone.getGameAction().newGame(Constant.Runtime.HUMAN_DECK[0], Constant.Runtime.COMPUTER_DECK[0]); AllZone.getGameAction().newGame(Constant.Runtime.HUMAN_DECK[0], Constant.Runtime.COMPUTER_DECK[0]);
} }
}); });

View File

@@ -37,7 +37,6 @@ import forge.quest.data.QuestPreferences.QPref;
import forge.quest.data.QuestUtil; import forge.quest.data.QuestUtil;
import forge.quest.data.item.QuestItemZeppelin; import forge.quest.data.item.QuestItemZeppelin;
import forge.quest.data.pet.QuestPetAbstract; import forge.quest.data.pet.QuestPetAbstract;
import forge.view.GuiTopLevel;
import forge.view.home.ViewQuest; import forge.view.home.ViewQuest;
/** /**
@@ -163,8 +162,7 @@ public class ControlQuest {
public void execute() { public void execute() {
AllZone.getQuestData().saveData(); AllZone.getQuestData().saveData();
refreshDecks(); refreshDecks();
GuiTopLevel g = ((GuiTopLevel) AllZone.getDisplay()); Singletons.getView().getHomeView().getBtnQuest().grabFocus();
g.getController().getHomeView().getBtnQuest().grabFocus();
} }
}; };
@@ -499,10 +497,8 @@ public class ControlQuest {
/** */ /** */
private void showBazaar() { private void showBazaar() {
GuiTopLevel g = ((GuiTopLevel) AllZone.getDisplay()); Singletons.getControl().changeState(FControl.QUEST_BAZAAR);
Singletons.getView().validate();
g.getController().changeState(FControl.QUEST_BAZAAR);
g.validate();
} }
/** */ /** */
@@ -565,9 +561,11 @@ public class ControlQuest {
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
@Override @Override
public void run() { public void run() {
GuiTopLevel g = (GuiTopLevel) AllZone.getDisplay(); view.getBarProgress().setVisible(false);
g.getController().changeState(FControl.MATCH_SCREEN); view.getBtnStart().setVisible(true);
g.getController().getMatchController().initMatch();
Singletons.getControl().changeState(FControl.MATCH_SCREEN);
Singletons.getControl().getMatchControl().initMatch();
AllZone.getMatchState().reset(); AllZone.getMatchState().reset();
if (event.getEventType().equals("challenge")) { if (event.getEventType().equals("challenge")) {

View File

@@ -16,6 +16,7 @@ import forge.AllZone;
import forge.Command; import forge.Command;
import forge.Constant; import forge.Constant;
import forge.PlayerType; import forge.PlayerType;
import forge.Singletons;
import forge.control.FControl; import forge.control.FControl;
import forge.deck.Deck; import forge.deck.Deck;
import forge.deck.DeckIO; import forge.deck.DeckIO;
@@ -27,7 +28,6 @@ import forge.item.CardPrinted;
import forge.item.ItemPool; import forge.item.ItemPool;
import forge.properties.ForgeProps; import forge.properties.ForgeProps;
import forge.properties.NewConstants; import forge.properties.NewConstants;
import forge.view.GuiTopLevel;
import forge.view.home.ViewSealed; import forge.view.home.ViewSealed;
/** /**
@@ -122,9 +122,8 @@ public class ControlSealed {
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
@Override @Override
public void run() { public void run() {
GuiTopLevel g = ((GuiTopLevel) AllZone.getDisplay()); Singletons.getControl().changeState(FControl.MATCH_SCREEN);
g.getController().changeState(FControl.MATCH_SCREEN); Singletons.getControl().getMatchControl().initMatch();
g.getController().getMatchController().initMatch();
AllZone.getGameAction().newGame(Constant.Runtime.HUMAN_DECK[0], Constant.Runtime.COMPUTER_DECK[0]); AllZone.getGameAction().newGame(Constant.Runtime.HUMAN_DECK[0], Constant.Runtime.COMPUTER_DECK[0]);
} }

View File

@@ -12,13 +12,11 @@ import javax.swing.SwingWorker;
import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener; import javax.swing.event.ListSelectionListener;
import forge.AllZone;
import forge.Command; import forge.Command;
import forge.Constant; import forge.Constant;
import forge.Singletons; import forge.Singletons;
import forge.properties.ForgePreferences; import forge.properties.ForgePreferences;
import forge.properties.ForgePreferences.FPref; import forge.properties.ForgePreferences.FPref;
import forge.view.GuiTopLevel;
import forge.view.home.ViewSettings; import forge.view.home.ViewSettings;
import forge.view.toolbox.FSkin; import forge.view.toolbox.FSkin;
@@ -222,10 +220,8 @@ public class ControlSettings {
view.getLblTitleSkin().setIcon(null); view.getLblTitleSkin().setIcon(null);
view.getLblTitleSkin().setText("Choose Skin"); view.getLblTitleSkin().setText("Choose Skin");
// Must create a new HomeTopLevel to reset all color/image/icon Singletons.getControl().changeState(0);
// values in components. Singletons.getView().getHomeView().showSettingsMenu();
((GuiTopLevel) AllZone.getDisplay()).getController().changeState(0);
((GuiTopLevel) AllZone.getDisplay()).getController().getHomeView().showSettingsMenu();
} }
}; };
w.execute(); w.execute();

View File

@@ -41,6 +41,7 @@ import forge.Constant.Zone;
import forge.GuiDisplayUtil; import forge.GuiDisplayUtil;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.cardfactory.CardFactoryUtil; import forge.card.cardfactory.CardFactoryUtil;
import forge.gui.ForgeAction; import forge.gui.ForgeAction;
import forge.gui.GuiUtils; import forge.gui.GuiUtils;
@@ -56,9 +57,7 @@ import forge.properties.NewConstants.Lang.GuiDisplay.ComputerHand;
import forge.properties.NewConstants.Lang.GuiDisplay.ComputerLibrary; import forge.properties.NewConstants.Lang.GuiDisplay.ComputerLibrary;
import forge.properties.NewConstants.Lang.GuiDisplay.HumanHand; import forge.properties.NewConstants.Lang.GuiDisplay.HumanHand;
import forge.properties.NewConstants.Lang.GuiDisplay.HumanLibrary; import forge.properties.NewConstants.Lang.GuiDisplay.HumanLibrary;
import forge.view.GuiTopLevel;
import forge.view.match.ViewField; import forge.view.match.ViewField;
import forge.view.match.MatchTopLevel;
import forge.view.toolbox.FLabel; import forge.view.toolbox.FLabel;
/** /**
@@ -443,11 +442,12 @@ public class ControlField {
maAvatar = new MouseAdapter() { maAvatar = new MouseAdapter() {
@Override @Override
public void mousePressed(final MouseEvent e) { public void mousePressed(final MouseEvent e) {
final MatchTopLevel t = ((GuiTopLevel) AllZone.getDisplay()).getController().getMatchController().getView();
if (ControlField.this.player.isComputer()) { if (ControlField.this.player.isComputer()) {
t.getInputController().getInputControl().selectPlayer(AllZone.getComputerPlayer()); Singletons.getControl().getMatchControl().getMessageControl()
.getInputControl().selectPlayer(AllZone.getComputerPlayer());
} else { } else {
t.getInputController().getInputControl().selectPlayer(AllZone.getHumanPlayer()); Singletons.getControl().getMatchControl().getMessageControl()
.getInputControl().selectPlayer(AllZone.getHumanPlayer());
} }
} }
}; };
@@ -456,11 +456,9 @@ public class ControlField {
maCardOver = new MouseMotionAdapter() { maCardOver = new MouseMotionAdapter() {
@Override @Override
public void mouseMoved(final MouseEvent me) { public void mouseMoved(final MouseEvent me) {
final MatchTopLevel t = ((GuiTopLevel) AllZone.getDisplay()).getController().getMatchController().getView();
final Card c = ControlField.this.view.getTabletop().getCardFromMouseOverPanel(); final Card c = ControlField.this.view.getTabletop().getCardFromMouseOverPanel();
if (c != null) { if (c != null) {
t.getDetailController().showCard(c); Singletons.getControl().getMatchControl().setCard(c);
t.getPictureController().showCard(c);
} }
} }
}; };
@@ -469,14 +467,13 @@ public class ControlField {
maCardClick = new MouseAdapter() { maCardClick = new MouseAdapter() {
@Override @Override
public void mousePressed(final MouseEvent e) { public void mousePressed(final MouseEvent e) {
final MatchTopLevel t = ((GuiTopLevel) AllZone.getDisplay()).getController().getMatchController().getView();
// original version: // original version:
// final Card c = t.getDetailController().getCurrentCard(); // final Card c = t.getDetailController().getCurrentCard();
// Roujin's bug fix version dated 2-12-2012 // Roujin's bug fix version dated 2-12-2012
final Card c = ControlField.this.view.getTabletop().getCardFromMouseOverPanel(); final Card c = ControlField.this.view.getTabletop().getCardFromMouseOverPanel();
final Input input = t.getInputController().getInputControl().getInput(); final Input input = Singletons.getControl().getMatchControl().getMessageControl().getInputControl().getInput();
if (c != null && c.isInZone(Zone.Battlefield)) { if (c != null && c.isInZone(Zone.Battlefield)) {
if (c.isTapped() if (c.isTapped()
@@ -514,8 +511,9 @@ public class ControlField {
((InputBlock) input).removeFromAllBlocking(c); ((InputBlock) input).removeFromAllBlocking(c);
} }
} else { } else {
t.getInputController().getInputControl() Singletons.getControl().getMatchControl().getMessageControl()
.selectCard(c, AllZone.getHumanPlayer().getZone(Zone.Battlefield)); .getInputControl().selectCard(c,
AllZone.getHumanPlayer().getZone(Zone.Battlefield));
} }
} }
} }

View File

@@ -40,8 +40,7 @@ import forge.AllZone;
import forge.Card; import forge.Card;
import forge.Constant.Zone; import forge.Constant.Zone;
import forge.PlayerZone; import forge.PlayerZone;
import forge.view.GuiTopLevel; import forge.Singletons;
import forge.view.match.MatchTopLevel;
import forge.view.match.ViewHand; import forge.view.match.ViewHand;
/** /**
@@ -70,8 +69,6 @@ public class ControlHand {
this.view = v; this.view = v;
this.cardsInPanel = new ArrayList<Card>(); this.cardsInPanel = new ArrayList<Card>();
final MatchTopLevel t = view.getTopLevel();
maCardClick = new MouseAdapter() { maCardClick = new MouseAdapter() {
// Card click // Card click
@Override @Override
@@ -81,8 +78,8 @@ public class ControlHand {
} }
final Card c = view.getHandArea().getCardFromMouseOverPanel(); final Card c = view.getHandArea().getCardFromMouseOverPanel();
if (c != null) { if (c != null) {
view.getTopLevel().getInputController().getInputControl().selectCard(c, AllZone.getHumanPlayer().getZone(Zone.Hand)); Singletons.getControl().getMatchControl().getMessageControl().getInputControl().selectCard(c, AllZone.getHumanPlayer().getZone(Zone.Hand));
view.getTopLevel().getInputController().getView().getBtnOK().requestFocusInWindow(); Singletons.getView().getMatchView().getBtnOK().requestFocusInWindow();
} }
} }
}; };
@@ -93,7 +90,7 @@ public class ControlHand {
public void mouseMoved(final MouseEvent me) { public void mouseMoved(final MouseEvent me) {
final Card c = view.getHandArea().getCardFromMouseOverPanel(); final Card c = view.getHandArea().getCardFromMouseOverPanel();
if (c != null) { if (c != null) {
((GuiTopLevel) AllZone.getDisplay()).setCard(c); Singletons.getControl().getMatchControl().setCard(c);
} }
} }
}; };
@@ -103,7 +100,9 @@ public class ControlHand {
public void update(final Observable a, final Object b) { public void update(final Observable a, final Object b) {
final PlayerZone pZone = (PlayerZone) a; final PlayerZone pZone = (PlayerZone) a;
final HandArea p = view.getHandArea(); final HandArea p = view.getHandArea();
final Rectangle rctLibraryLabel = t.getFieldControllers().get(1).getView().getLblLibrary().getBounds(); final Rectangle rctLibraryLabel = Singletons.getControl()
.getMatchControl().getFieldControls().get(1)
.getView().getLblLibrary().getBounds();
final Card[] c = pZone.getCards(); final Card[] c = pZone.getCards();
// Animation starts from the library label. // Animation starts from the library label.
@@ -129,10 +128,12 @@ public class ControlHand {
diff = new ArrayList<Card>(Arrays.asList(c)); diff = new ArrayList<Card>(Arrays.asList(c));
diff.removeAll(tmp); diff.removeAll(tmp);
JLayeredPane layeredPane = SwingUtilities.getRootPane(t.getTopLevelFrame()).getLayeredPane(); JLayeredPane layeredPane = Singletons.getView().getLayeredPane();
int fromZoneX = 0, fromZoneY = 0; int fromZoneX = 0, fromZoneY = 0;
final Point zoneLocation = SwingUtilities.convertPoint(t.getFieldControllers().get(1).getView().getLblLibrary(), final Point zoneLocation = SwingUtilities.convertPoint(Singletons
.getControl().getMatchControl().getFieldControls()
.get(1).getView().getLblLibrary(),
Math.round(rctLibraryLabel.width / 2.0f), Math.round(rctLibraryLabel.height / 2.0f), layeredPane); Math.round(rctLibraryLabel.width / 2.0f), Math.round(rctLibraryLabel.height / 2.0f), layeredPane);
fromZoneX = zoneLocation.x; fromZoneX = zoneLocation.x;
fromZoneY = zoneLocation.y; fromZoneY = zoneLocation.y;
@@ -152,7 +153,7 @@ public class ControlHand {
endX = toPos.x; endX = toPos.x;
endY = toPos.y; endY = toPos.y;
final arcane.ui.CardPanel animationPanel = new arcane.ui.CardPanel(card); final arcane.ui.CardPanel animationPanel = new arcane.ui.CardPanel(card);
if (t.getTopLevelFrame().isShowing()) { if (Singletons.getView().isShowing()) {
Animation.moveCard(startX, startY, startWidth, endX, endY, endWidth, animationPanel, toPanel, Animation.moveCard(startX, startY, startWidth, endX, endY, endWidth, animationPanel, toPanel,
layeredPane, 500); layeredPane, 500);
} else { } else {
@@ -186,15 +187,14 @@ public class ControlHand {
*/ */
public void addCardPanelListeners(final CardPanel c) { public void addCardPanelListeners(final CardPanel c) {
// Grab top level controller to facilitate interaction between children // Grab top level controller to facilitate interaction between children
final MatchTopLevel t = ((GuiTopLevel) AllZone.getDisplay()).getController().getMatchController().getView();
final Card cardobj = c.getCard(); final Card cardobj = c.getCard();
// Sidebar pic/detail on card hover // Sidebar pic/detail on card hover
c.addMouseListener(new MouseAdapter() { c.addMouseListener(new MouseAdapter() {
@Override @Override
public void mouseEntered(final MouseEvent e) { public void mouseEntered(final MouseEvent e) {
t.getDetailController().showCard(cardobj); Singletons.getControl().getMatchControl().getDetailControl().showCard(cardobj);
t.getPictureController().showCard(cardobj); Singletons.getControl().getMatchControl().getPictureControl().showCard(cardobj);
} }
}); });
@@ -207,7 +207,7 @@ public class ControlHand {
return; return;
} }
t.getInputController().getInputControl() Singletons.getControl().getMatchControl().getMessageControl().getInputControl()
.selectCard(cardobj, AllZone.getHumanPlayer().getZone(Zone.Hand)); .selectCard(cardobj, AllZone.getHumanPlayer().getZone(Zone.Hand));
} }
}); });

View File

@@ -23,14 +23,14 @@ import java.awt.event.ActionListener;
import forge.AllZone; import forge.AllZone;
import forge.Constant; import forge.Constant;
import forge.GuiInput; import forge.GuiInput;
import forge.view.match.ViewInput; import forge.view.match.ViewMessage;
/** /**
* Child controller - handles operations related to input panel. * Child controller - handles operations related to message panel.
* *
*/ */
public class ControlInput { public class ControlMessage {
private final ViewInput view; private final ViewMessage view;
private final GuiInput inputControl; private final GuiInput inputControl;
@@ -42,29 +42,29 @@ public class ControlInput {
* @param v * @param v
* &emsp; The Swing component for the input area * &emsp; The Swing component for the input area
*/ */
public ControlInput(final ViewInput v) { public ControlMessage(final ViewMessage v) {
this.view = v; this.view = v;
this.inputControl = new GuiInput(); this.inputControl = new GuiInput();
this.alOK = new ActionListener() { this.alOK = new ActionListener() {
@Override @Override
public void actionPerformed(final ActionEvent evt) { public void actionPerformed(final ActionEvent evt) {
ControlInput.this.btnOKActionPerformed(evt); ControlMessage.this.btnOKActionPerformed(evt);
if (AllZone.getPhaseHandler().isNeedToNextPhase()) { if (AllZone.getPhaseHandler().isNeedToNextPhase()) {
// moves to next turn // moves to next turn
AllZone.getPhaseHandler().setNeedToNextPhase(false); AllZone.getPhaseHandler().setNeedToNextPhase(false);
AllZone.getPhaseHandler().nextPhase(); AllZone.getPhaseHandler().nextPhase();
} }
ControlInput.this.view.getBtnOK().requestFocusInWindow(); ControlMessage.this.view.getBtnOK().requestFocusInWindow();
} }
}; };
this.alCancel = new ActionListener() { this.alCancel = new ActionListener() {
@Override @Override
public void actionPerformed(final ActionEvent evt) { public void actionPerformed(final ActionEvent evt) {
ControlInput.this.btnCancelActionPerformed(evt); ControlMessage.this.btnCancelActionPerformed(evt);
ControlInput.this.view.getBtnOK().requestFocusInWindow(); ControlMessage.this.view.getBtnOK().requestFocusInWindow();
} }
}; };
} }
@@ -114,9 +114,9 @@ public class ControlInput {
return this.inputControl; return this.inputControl;
} }
/** @return ViewInput */ /** @param s0 &emsp; {@link java.lang.String} */
public ViewInput getView() { public void setMessage(String s0) {
return view; view.getTarMessage().setText(s0);
} }
/** Updates count label in input area. */ /** Updates count label in input area. */

View File

@@ -8,8 +8,8 @@ import forge.AllZone;
import forge.Card; import forge.Card;
import forge.CardList; import forge.CardList;
import forge.Constant; import forge.Constant;
import forge.Singletons;
import forge.Constant.Zone; import forge.Constant.Zone;
import forge.Singletons;
import forge.control.FControl; import forge.control.FControl;
import forge.deck.Deck; import forge.deck.Deck;
import forge.game.GameType; import forge.game.GameType;
@@ -17,7 +17,6 @@ import forge.gui.GuiUtils;
import forge.item.CardDb; import forge.item.CardDb;
import forge.item.CardPrinted; import forge.item.CardPrinted;
import forge.properties.ForgePreferences.FPref; import forge.properties.ForgePreferences.FPref;
import forge.view.GuiTopLevel;
import forge.view.match.ViewWinLose; import forge.view.match.ViewWinLose;
/** /**
@@ -75,10 +74,10 @@ public class ControlWinLose {
/** Action performed when "quit" button is pressed in default win/lose UI. */ /** Action performed when "quit" button is pressed in default win/lose UI. */
public void actionOnQuit() { public void actionOnQuit() {
AllZone.getMatchState().reset(); AllZone.getMatchState().reset();
AllZone.getDisplay().savePrefs(); Singletons.getModel().savePrefs();
FControl g = ((GuiTopLevel) AllZone.getDisplay()).getController(); Singletons.getControl().getMatchControl().deinitMatch();
g.getMatchController().deinitMatch(); Singletons.getControl().changeState(FControl.HOME_SCREEN);
g.changeState(FControl.HOME_SCREEN); GuiUtils.closeOverlay();
} }
/** /**
@@ -122,7 +121,7 @@ public class ControlWinLose {
Constant.Runtime.HUMAN_DECK[0] = hDeck; Constant.Runtime.HUMAN_DECK[0] = hDeck;
} }
} }
AllZone.getDisplay().savePrefs(); Singletons.getModel().savePrefs();
AllZone.getGameAction().newGame(Constant.Runtime.HUMAN_DECK[0], Constant.Runtime.COMPUTER_DECK[0]); AllZone.getGameAction().newGame(Constant.Runtime.HUMAN_DECK[0], Constant.Runtime.COMPUTER_DECK[0]);
} }

View File

@@ -40,11 +40,10 @@ import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener; import javax.swing.event.ListSelectionListener;
import net.slightlymagic.braids.util.UtilFunctions; import net.slightlymagic.braids.util.UtilFunctions;
import forge.AllZone;
import forge.Card; import forge.Card;
import forge.Singletons;
import forge.properties.ForgeProps; import forge.properties.ForgeProps;
import forge.properties.NewConstants; import forge.properties.NewConstants;
import forge.view.toolbox.FOverlay;
/** /**
* <p> * <p>
@@ -357,8 +356,8 @@ public final class GuiUtils {
list.addListSelectionListener(new ListSelectionListener() { list.addListSelectionListener(new ListSelectionListener() {
@Override @Override
public void valueChanged(final ListSelectionEvent ev) { public void valueChanged(final ListSelectionEvent ev) {
if ((list.getSelectedValue() instanceof Card) && (AllZone.getDisplay() != null)) { if (list.getSelectedValue() instanceof Card) {
AllZone.getDisplay().setCard((Card) list.getSelectedValue()); Singletons.getControl().getMatchControl().setCard((Card) list.getSelectedValue());
} }
} }
}); });
@@ -406,9 +405,8 @@ public final class GuiUtils {
/** Removes child components and closes overlay. */ /** Removes child components and closes overlay. */
public static void closeOverlay() { public static void closeOverlay() {
final FOverlay overlay = AllZone.getOverlay(); Singletons.getView().getOverlay().removeAll();
overlay.removeAll(); Singletons.getView().getOverlay().hideOverlay();
overlay.hideOverlay();
} }
/** Duplicate in DeckEditorQuestMenu and /** Duplicate in DeckEditorQuestMenu and

View File

@@ -39,7 +39,7 @@ import javax.swing.WindowConstants;
import net.slightlymagic.maxmtg.Predicate; import net.slightlymagic.maxmtg.Predicate;
import forge.AllZone; import forge.AllZone;
import forge.Constant; import forge.Constant;
import forge.control.FControl; import forge.Singletons;
import forge.deck.Deck; import forge.deck.Deck;
import forge.deck.DeckIO; import forge.deck.DeckIO;
import forge.deck.DeckManager; import forge.deck.DeckManager;
@@ -53,7 +53,6 @@ import forge.item.InventoryItem;
import forge.item.ItemPoolView; import forge.item.ItemPoolView;
import forge.properties.ForgeProps; import forge.properties.ForgeProps;
import forge.properties.NewConstants.Lang.GuiBoosterDraft; import forge.properties.NewConstants.Lang.GuiBoosterDraft;
import forge.view.GuiTopLevel;
/** /**
* <p> * <p>
@@ -133,8 +132,8 @@ public class DeckEditorDraft extends DeckEditorBase {
ForgeProps.getLocalized(GuiBoosterDraft.CLOSE_MESSAGE), "", JOptionPane.YES_NO_OPTION); ForgeProps.getLocalized(GuiBoosterDraft.CLOSE_MESSAGE), "", JOptionPane.YES_NO_OPTION);
if (n == JOptionPane.YES_OPTION) { if (n == JOptionPane.YES_OPTION) {
DeckEditorDraft.this.dispose(); DeckEditorDraft.this.dispose();
FControl g = ((GuiTopLevel) AllZone.getDisplay()).getController(); // ghandi why is draft controller in a view
g.getHomeView().getDraftController().updateHumanDecks(); Singletons.getView().getHomeView().getDraftController().updateHumanDecks();
} }
} // windowClosing() } // windowClosing()
}); });
@@ -351,8 +350,8 @@ public class DeckEditorDraft extends DeckEditorBase {
// close and open next screen // close and open next screen
this.dispose(); this.dispose();
FControl g = ((GuiTopLevel) AllZone.getDisplay()).getController(); // ghandi here is is again
g.getHomeView().getDraftController().updateHumanDecks(); Singletons.getView().getHomeView().getDraftController().updateHumanDecks();
} /* saveDraft() */ } /* saveDraft() */

View File

@@ -21,6 +21,7 @@ import forge.AllZone;
import forge.Card; import forge.Card;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
/** /**
* <p> * <p>
@@ -43,7 +44,7 @@ public abstract class Input implements java.io.Serializable {
* </p> * </p>
*/ */
public void showMessage() { public void showMessage() {
AllZone.getDisplay().showMessage("Blank Input"); Singletons.getControl().getMatchControl().showMessage("Blank Input");
} }
/** /**

View File

@@ -27,11 +27,11 @@ import forge.Constant;
import forge.Constant.Zone; import forge.Constant.Zone;
import forge.GameActionUtil; import forge.GameActionUtil;
import forge.PlayerZone; import forge.PlayerZone;
import forge.view.GuiTopLevel; import forge.Singletons;
/** /**
* <p> * <p>
* Input_Attack class. * InputAttack class.
* </p> * </p>
* *
* @author Forge * @author Forge
@@ -57,7 +57,7 @@ public class InputAttack extends Input {
sb.append("Declare Attackers: Select Creatures to Attack "); sb.append("Declare Attackers: Select Creatures to Attack ");
sb.append(o.toString()); sb.append(o.toString());
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
if (AllZone.getCombat().getRemainingDefenders() == 0) { if (AllZone.getCombat().getRemainingDefenders() == 0) {
// Nothing left to attack, has to attack this defender // Nothing left to attack, has to attack this defender
@@ -117,7 +117,7 @@ public class InputAttack extends Input {
CombatUtil.showCombat(); CombatUtil.showCombat();
} }
else { else {
((GuiTopLevel) AllZone.getDisplay()).getController().getMatchController().getView().getInputController().remind(); Singletons.getControl().getMatchControl().getMessageControl().remind();
} }
} // selectCard() } // selectCard()

View File

@@ -28,7 +28,7 @@ import forge.Command;
import forge.Constant; import forge.Constant;
import forge.GameActionUtil; import forge.GameActionUtil;
import forge.PlayerZone; import forge.PlayerZone;
import forge.view.GuiTopLevel; import forge.Singletons;
/** /**
* <p> * <p>
@@ -74,14 +74,14 @@ public class InputBlock extends Input {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append("To Block, click on your Opponents attacker first, then your blocker(s). "); sb.append("To Block, click on your Opponents attacker first, then your blocker(s). ");
sb.append("To cancel a block right-click on your blocker"); sb.append("To cancel a block right-click on your blocker");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
} else { } else {
final String attackerName = this.currentAttacker.isFaceDown() ? "Morph" : this.currentAttacker.getName(); final String attackerName = this.currentAttacker.isFaceDown() ? "Morph" : this.currentAttacker.getName();
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
sb.append("Select a creature to block ").append(attackerName).append(" ("); sb.append("Select a creature to block ").append(attackerName).append(" (");
sb.append(this.currentAttacker.getUniqueNumber()).append("). "); sb.append(this.currentAttacker.getUniqueNumber()).append("). ");
sb.append("To cancel a block right-click on your blocker"); sb.append("To cancel a block right-click on your blocker");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
} }
CombatUtil.showCombat(); CombatUtil.showCombat();
@@ -112,7 +112,7 @@ public class InputBlock extends Input {
} }
} }
else { else {
((GuiTopLevel) AllZone.getDisplay()).getController().getMatchController().getView().getInputController().remind(); Singletons.getControl().getMatchControl().getMessageControl().remind();
} }
this.showMessage(); this.showMessage();
} // selectCard() } // selectCard()

View File

@@ -24,6 +24,7 @@ import forge.CombatUtil;
import forge.Constant; import forge.Constant;
import forge.Constant.Zone; import forge.Constant.Zone;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
/** /**
* <p> * <p>
@@ -53,7 +54,7 @@ public class InputCleanup extends Input {
final StringBuffer sb = new StringBuffer(); final StringBuffer sb = new StringBuffer();
sb.append("Cleanup Phase: You can only have a maximum of ").append(AllZone.getHumanPlayer().getMaxHandSize()); sb.append("Cleanup Phase: You can only have a maximum of ").append(AllZone.getHumanPlayer().getMaxHandSize());
sb.append(" cards, you currently have ").append(n).append(" cards in your hand - select a card to discard"); sb.append(" cards, you currently have ").append(n).append(" cards in your hand - select a card to discard");
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
// goes to the next phase // goes to the next phase
if ((n <= AllZone.getHumanPlayer().getMaxHandSize()) || (AllZone.getHumanPlayer().getMaxHandSize() == -1)) { if ((n <= AllZone.getHumanPlayer().getMaxHandSize()) || (AllZone.getHumanPlayer().getMaxHandSize() == -1)) {

View File

@@ -25,6 +25,7 @@ import forge.Constant;
import forge.MyObservable; import forge.MyObservable;
import forge.PhaseHandler; import forge.PhaseHandler;
import forge.Player; import forge.Player;
import forge.Singletons;
import forge.model.FModel; import forge.model.FModel;
/** /**
@@ -246,7 +247,7 @@ public class InputControl extends MyObservable implements java.io.Serializable {
final boolean skip = this.model.getGameState().getPhaseHandler().doSkipPhase(); final boolean skip = this.model.getGameState().getPhaseHandler().doSkipPhase();
this.model.getGameState().getPhaseHandler().setSkipPhase(false); this.model.getGameState().getPhaseHandler().setSkipPhase(false);
if ((this.model.getGameState().getStack().size() == 0) if ((this.model.getGameState().getStack().size() == 0)
&& !forge.AllZone.getDisplay().stopAtPhase(playerTurn, phase) && skip) { && !Singletons.getControl().getMatchControl().stopAtPhase(playerTurn, phase) && skip) {
this.model.getGameState().getPhaseHandler().passPriority(); this.model.getGameState().getPhaseHandler().passPriority();
return null; return null;
} else { } else {

View File

@@ -37,16 +37,14 @@ import forge.card.abilityfactory.AbilityFactory;
import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbility;
import forge.game.GamePlayerRating; import forge.game.GamePlayerRating;
import forge.quest.data.QuestData; import forge.quest.data.QuestData;
import forge.view.GuiTopLevel; /**
* <p>
/** * InputMulligan class.
* <p> * </p>
* Input_Mulligan class. *
* </p> * @author Forge
* * @version $Id$
* @author Forge */
* @version $Id$
*/
public class InputMulligan extends Input { public class InputMulligan extends Input {
/** Constant <code>serialVersionUID=-8112954303001155622L</code>. */ /** Constant <code>serialVersionUID=-8112954303001155622L</code>. */
private static final long serialVersionUID = -8112954303001155622L; private static final long serialVersionUID = -8112954303001155622L;
@@ -58,9 +56,9 @@ public class InputMulligan extends Input {
@Override @Override
public final void showMessage() { public final void showMessage() {
ButtonUtil.enableAll(); ButtonUtil.enableAll();
AllZone.getDisplay().getButtonOK().setText("No"); Singletons.getView().getMatchView().getBtnOK().setText("No");
AllZone.getDisplay().getButtonCancel().setText("Yes"); Singletons.getView().getMatchView().getBtnCancel().setText("Yes");
AllZone.getDisplay().showMessage("Do you want to Mulligan?"); Singletons.getControl().getMatchControl().showMessage("Do you want to Mulligan?");
} }
/** {@inheritDoc} */ /** {@inheritDoc} */
@@ -225,7 +223,7 @@ public class InputMulligan extends Input {
c0.getController().drawCards(hand.size()); c0.getController().drawCards(hand.size());
} }
} else { } else {
((GuiTopLevel) AllZone.getDisplay()).getController().getMatchController().getView().getInputController().remind(); Singletons.getControl().getMatchControl().getMessageControl().remind();
} }
} }
} }

View File

@@ -23,7 +23,7 @@ import forge.Card;
import forge.GuiDisplayUtil; import forge.GuiDisplayUtil;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.view.GuiTopLevel; import forge.Singletons;
/** /**
* <p> * <p>
@@ -63,7 +63,7 @@ public class InputPassPriority extends Input implements java.io.Serializable {
sb.append("\n"); sb.append("\n");
sb.append("Priority: ").append(player); sb.append("Priority: ").append(player);
AllZone.getDisplay().showMessage(sb.toString()); Singletons.getControl().getMatchControl().showMessage(sb.toString());
} }
/** {@inheritDoc} */ /** {@inheritDoc} */
@@ -85,7 +85,7 @@ public class InputPassPriority extends Input implements java.io.Serializable {
AllZone.getPhaseHandler().setPriority(AllZone.getHumanPlayer()); AllZone.getPhaseHandler().setPriority(AllZone.getHumanPlayer());
} }
else { else {
((GuiTopLevel) AllZone.getDisplay()).getController().getMatchController().getView().getInputController().remind(); Singletons.getControl().getMatchControl().getMessageControl().remind();
} }
} // selectCard() } // selectCard()
} }

View File

@@ -24,6 +24,7 @@ import forge.Constant.Zone;
import forge.PhaseHandler; import forge.PhaseHandler;
import forge.Player; import forge.Player;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.mana.ManaCost; import forge.card.mana.ManaCost;
import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbility;
@@ -287,7 +288,7 @@ public class InputPayManaCost extends InputMana {
msg.append("\n(Click on your life total to pay life for phyrexian mana.)"); msg.append("\n(Click on your life total to pay life for phyrexian mana.)");
} }
AllZone.getDisplay().showMessage(msg.toString()); Singletons.getControl().getMatchControl().showMessage(msg.toString());
if (this.manaCost.isPaid() && !new ManaCost(this.originalManaCost).isPaid()) { if (this.manaCost.isPaid() && !new ManaCost(this.originalManaCost).isPaid()) {
this.originalCard.setSunburstValue(this.manaCost.getSunburst()); this.originalCard.setSunburstValue(this.manaCost.getSunburst());
this.done(); this.done();

View File

@@ -22,6 +22,7 @@ import forge.ButtonUtil;
import forge.Card; import forge.Card;
import forge.Command; import forge.Command;
import forge.PlayerZone; import forge.PlayerZone;
import forge.Singletons;
import forge.card.mana.ManaCost; import forge.card.mana.ManaCost;
import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbility;
@@ -188,7 +189,7 @@ public class InputPayManaCostAbility extends InputMana {
if (this.showOnlyOKButton) { if (this.showOnlyOKButton) {
ButtonUtil.enableOnlyOK(); ButtonUtil.enableOnlyOK();
} }
AllZone.getDisplay().showMessage(this.message + "Pay Mana Cost: \r\n" + this.manaCost.toString()); Singletons.getControl().getMatchControl().showMessage(this.message + "Pay Mana Cost: \r\n" + this.manaCost.toString());
} }
/* (non-Javadoc) /* (non-Javadoc)

View File

@@ -24,6 +24,7 @@ import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.PrintStream; import java.io.PrintStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
import arcane.util.MultiplexOutputStream; import arcane.util.MultiplexOutputStream;
import forge.AllZone; import forge.AllZone;
@@ -31,15 +32,18 @@ import forge.ComputerAIGeneral;
import forge.ComputerAIInput; import forge.ComputerAIInput;
import forge.Constant; import forge.Constant;
import forge.ConstantStringArrayList; import forge.ConstantStringArrayList;
import forge.Singletons;
import forge.game.GameSummary; import forge.game.GameSummary;
import forge.gui.input.InputControl; import forge.gui.input.InputControl;
import forge.properties.ForgePreferences; import forge.properties.ForgePreferences;
import forge.properties.ForgePreferences.FPref;
import forge.properties.ForgeProps; import forge.properties.ForgeProps;
import forge.properties.NewConstants; import forge.properties.NewConstants;
import forge.properties.ForgePreferences.FPref;
import forge.quest.data.QuestPreferences; import forge.quest.data.QuestPreferences;
import forge.util.FileUtil; import forge.util.FileUtil;
import forge.util.HttpUtil; import forge.util.HttpUtil;
import forge.view.match.ViewField;
import forge.view.match.ViewTabber;
import forge.view.toolbox.FSkin; import forge.view.toolbox.FSkin;
/** /**
@@ -306,4 +310,91 @@ public class FModel {
return this.gameState; return this.gameState;
} }
/** TODO: Needs to be reworked for efficiency with rest of prefs saves in codebase. */
public final boolean savePrefs() {
final ForgePreferences fp = preferences;
final List<ViewField> fieldViews = Singletons.getView().getMatchView().getFieldViews();
// AI field is at index [0]
fp.setPref(FPref.PHASE_AI_UPKEEP, String.valueOf(fieldViews.get(0).getLblUpkeep().getEnabled()));
fp.setPref(FPref.PHASE_AI_DRAW, String.valueOf(fieldViews.get(0).getLblDraw().getEnabled()));
fp.setPref(FPref.PHASE_AI_MAIN1, String.valueOf(fieldViews.get(0).getLblMain1().getEnabled()));
fp.setPref(FPref.PHASE_AI_BEGINCOMBAT, String.valueOf(fieldViews.get(0).getLblBeginCombat().getEnabled()));
fp.setPref(FPref.PHASE_AI_DECLAREATTACKERS, String.valueOf(fieldViews.get(0).getLblDeclareAttackers().getEnabled()));
fp.setPref(FPref.PHASE_AI_DECLAREBLOCKERS, String.valueOf(fieldViews.get(0).getLblDeclareBlockers().getEnabled()));
fp.setPref(FPref.PHASE_AI_FIRSTSTRIKE, String.valueOf(fieldViews.get(0).getLblFirstStrike().getEnabled()));
fp.setPref(FPref.PHASE_AI_COMBATDAMAGE, String.valueOf(fieldViews.get(0).getLblCombatDamage().getEnabled()));
fp.setPref(FPref.PHASE_AI_ENDCOMBAT, String.valueOf(fieldViews.get(0).getLblEndCombat().getEnabled()));
fp.setPref(FPref.PHASE_AI_MAIN2, String.valueOf(fieldViews.get(0).getLblMain2().getEnabled()));
fp.setPref(FPref.PHASE_AI_EOT, String.valueOf(fieldViews.get(0).getLblEndTurn().getEnabled()));
fp.setPref(FPref.PHASE_AI_CLEANUP, String.valueOf(fieldViews.get(0).getLblCleanup().getEnabled()));
// Human field is at index [1]
fp.setPref(FPref.PHASE_HUMAN_UPKEEP, String.valueOf(fieldViews.get(1).getLblUpkeep().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_DRAW, String.valueOf(fieldViews.get(1).getLblDraw().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_MAIN1, String.valueOf(fieldViews.get(1).getLblMain1().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_BEGINCOMBAT, String.valueOf(fieldViews.get(1).getLblBeginCombat().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_DECLAREATTACKERS, String.valueOf(fieldViews.get(1).getLblDeclareAttackers().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_DECLAREBLOCKERS, String.valueOf(fieldViews.get(1).getLblDeclareBlockers().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_FIRSTSTRIKE, String.valueOf(fieldViews.get(1).getLblFirstStrike().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_COMBATDAMAGE, String.valueOf(fieldViews.get(1).getLblCombatDamage().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_ENDCOMBAT, String.valueOf(fieldViews.get(1).getLblEndCombat().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_MAIN2, String.valueOf(fieldViews.get(1).getLblMain2().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_EOT, String.valueOf(fieldViews.get(1).getLblEndTurn().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_CLEANUP, String.valueOf(fieldViews.get(1).getLblCleanup().getEnabled()));
ViewTabber v = Singletons.getView().getMatchView().getViewTabber();
Constant.Runtime.MILL[0] = v.getLblMilling().getEnabled();
fp.setPref(FPref.DEV_MILLING_LOSS, String.valueOf(Constant.Runtime.MILL[0]));
fp.setPref(FPref.UI_LAYOUT_PARAMS, String.valueOf(Singletons.getView().getMatchView().getLayoutParams()));
fp.setPref(FPref.DEV_UNLIMITED_LAND, String.valueOf(v.getLblUnlimitedLands().getEnabled()));
fp.save();
return true;
}
/** TODO: Needs to be reworked for efficiency with rest of prefs loads in codebase. */
public final boolean loadPrefs() {
final ForgePreferences fp = Singletons.getModel().getPreferences();
final List<ViewField> fieldViews = Singletons.getView().getMatchView().getFieldViews();
Constant.Runtime.MILL[0] = fp.getPrefBoolean(FPref.DEV_MILLING_LOSS);
Constant.Runtime.DEV_MODE[0] = fp.getPrefBoolean(FPref.DEV_MODE_ENABLED);
Constant.Runtime.UPLOAD_DRAFT[0] = fp.getPrefBoolean(FPref.UI_UPLOAD_DRAFT);
Constant.Runtime.RANDOM_FOIL[0] = fp.getPrefBoolean(FPref.UI_RANDOM_FOIL);
Constant.Runtime.UPLOAD_DRAFT[0] =
(Constant.Runtime.NET_CONN[0] ? fp.getPrefBoolean(FPref.UI_UPLOAD_DRAFT) : false);
// AI field is at index [0]
fieldViews.get(0).getLblUpkeep().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_UPKEEP));
fieldViews.get(0).getLblDraw().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_DRAW));
fieldViews.get(0).getLblMain1().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_MAIN1));
fieldViews.get(0).getLblBeginCombat().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_BEGINCOMBAT));
fieldViews.get(0).getLblDeclareAttackers().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_DECLAREATTACKERS));
fieldViews.get(0).getLblDeclareBlockers().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_DECLAREBLOCKERS));
fieldViews.get(0).getLblFirstStrike().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_FIRSTSTRIKE));
fieldViews.get(0).getLblCombatDamage().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_COMBATDAMAGE));
fieldViews.get(0).getLblEndCombat().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_ENDCOMBAT));
fieldViews.get(0).getLblMain2().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_MAIN2));
fieldViews.get(0).getLblEndTurn().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_EOT));
fieldViews.get(0).getLblCleanup().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_CLEANUP));
// Human field is at index [1]
fieldViews.get(1).getLblUpkeep().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_UPKEEP));
fieldViews.get(1).getLblDraw().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_DRAW));
fieldViews.get(1).getLblMain1().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_MAIN1));
fieldViews.get(1).getLblBeginCombat().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_BEGINCOMBAT));
fieldViews.get(1).getLblDeclareAttackers().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREATTACKERS));
fieldViews.get(1).getLblDeclareBlockers().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREBLOCKERS));
fieldViews.get(1).getLblFirstStrike().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_FIRSTSTRIKE));
fieldViews.get(1).getLblCombatDamage().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_COMBATDAMAGE));
fieldViews.get(1).getLblEndCombat().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_ENDCOMBAT));
fieldViews.get(1).getLblMain2().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_MAIN2));
fieldViews.get(1).getLblEndTurn().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_EOT));
fieldViews.get(1).getLblCleanup().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_CLEANUP));
Singletons.getView().getMatchView().setLayoutParams(fp.getPref(FPref.UI_LAYOUT_PARAMS));
return true;
}
} }

View File

@@ -17,78 +17,58 @@
*/ */
package forge.view; package forge.view;
import java.awt.Dimension;
import java.awt.Frame;
import javax.swing.JFrame;
import javax.swing.JLayeredPane;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import net.slightlymagic.braids.util.UtilFunctions;
import forge.AllZone; import forge.AllZone;
import forge.Singletons; import forge.Singletons;
import forge.control.FControl; import forge.control.FControl;
import forge.properties.ForgePreferences; import forge.properties.ForgePreferences;
import forge.properties.ForgePreferences.FPref; import forge.properties.ForgePreferences.FPref;
import forge.view.home.SplashFrame;
import forge.view.toolbox.CardFaceSymbols; import forge.view.toolbox.CardFaceSymbols;
import forge.view.toolbox.FProgressBar; import forge.view.toolbox.FOverlay;
import forge.view.toolbox.FSkin; import forge.view.toolbox.FSkin;
/** /**
* The main view for Forge: a java swing application. All view class instances * The main view for Forge: a java swing application. All view class instances
* should be accessible from here. * should be accessible from here.
*/ */
public class FView { @SuppressWarnings("serial")
public final class FView extends JFrame {
private final JLayeredPane lpnContent = new JLayeredPane();
private final FOverlay overlay = new FOverlay();
private transient SplashFrame splashFrame; private SplashFrame splash;
private FProgressBar barProgress = null; private ViewHomeUI home = null;
private ViewMatchUI match = null;
private ViewEditorUI editor = null;
private ViewBazaarUI bazaar = null;
/** //private static final JLayeredPane lpnContent;
* The splashFrame field is guaranteed to exist when this constructor exits. //private static final FControl control;
*
*/ /** The splash frame is guaranteed to exist when this constructor exits. */
public FView() { public FView() {
// We must use invokeAndWait here to fulfill the constructor's super();
// contract. NOPMD by Braids on 8/18/11 11:37 PM
UtilFunctions.invokeInEventDispatchThreadAndWait(new Runnable() {
@Override
public void run() {
try {
FView.this.splashFrame = new SplashFrame();
} catch (Exception e) {
e.printStackTrace();
}
}
});
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
@Override @Override
public void run() { public void run() {
FView.this.splashFrame.setVisible(true); try { splash = new SplashFrame(); }
catch (Exception e) { e.printStackTrace(); }
} }
}); });
} }
/**
* Allows singleton (global) access to a progress bar (which must be set first).
*
* @return {@link forge.view.toolbox.FProgressBar}
*/
public final FProgressBar getProgressBar() {
return this.barProgress;
}
/**
* Sets a progress bar so it can be accessed via singletons.
*
* @param bar0 &emsp; {@link forge.view.toolbox.FProgressBar}
*/
public final void setProgressBar(FProgressBar bar0) {
this.barProgress = bar0;
}
/** /**
* Tell the view that the model has been bootstrapped, the initial stuff * Tell the view that the model has been bootstrapped, the initial stuff
* for the skin is in place, and data is ready for initial display. * for the skin is in place, and data is ready for initial display.
*/ */
public final void initialize() { public void initialize() {
this.setProgressBar(splashFrame.getProgressBar());
// Preloads all cards (using progress bar). // Preloads all cards (using progress bar).
AllZone.getCardFactory(); AllZone.getCardFactory();
@@ -102,16 +82,37 @@ public class FView {
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
@Override @Override
public void run() { public void run() {
barProgress.setDescription("Creating display components."); SplashFrame.PROGRESS_BAR.setDescription("Creating display components.");
final GuiTopLevel g = new GuiTopLevel();
AllZone.setDisplay(g);
g.getController().changeState(FControl.HOME_SCREEN);
FView.this.splashFrame.dispose(); // Frame styling
FView.this.splashFrame = null; FView.this.setMinimumSize(new Dimension(800, 600));
FView.this.setLocationRelativeTo(null);
FView.this.setExtendedState(FView.this.getExtendedState() | Frame.MAXIMIZED_BOTH);
FView.this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
FView.this.setIconImage(FSkin.getIcon(FSkin.ForgeIcons.ICO_FAVICON).getImage());
FView.this.setTitle("Forge: " + Singletons.getModel().getBuildInfo().getVersion());
barProgress.setDescription("Forge is ready to launch."); // Content pane
g.setVisible(true); FView.this.lpnContent.setOpaque(true);
FView.this.setContentPane(FView.this.lpnContent);
// Overlay
overlay.setBounds(0, 0, FView.this.getWidth(), FView.this.getHeight());
FView.this.lpnContent.add(overlay, JLayeredPane.MODAL_LAYER);
// Instantiate all different state screens
FView.this.home = new ViewHomeUI();
FView.this.match = new ViewMatchUI();
FView.this.editor = new ViewEditorUI();
FView.this.bazaar = new ViewBazaarUI();
// All is ready to go - fire up home screen and discard splash frame.
Singletons.getControl().changeState(FControl.HOME_SCREEN);
FView.this.splash.dispose();
FView.this.splash = null;
FView.this.setVisible(true);
// Open previous menu on first run, or constructed. // Open previous menu on first run, or constructed.
// Focus is reset when the frame becomes visible, // Focus is reset when the frame becomes visible,
@@ -120,15 +121,61 @@ public class FView {
ForgePreferences.HomeMenus.valueOf(Singletons.getModel().getPreferences().getPref(FPref.UI_HOMEMENU)); ForgePreferences.HomeMenus.valueOf(Singletons.getModel().getPreferences().getPref(FPref.UI_HOMEMENU));
switch(lastMenu) { switch(lastMenu) {
case constructed: g.getHomeView().getBtnConstructed().grabFocus(); break; case constructed: FView.this.getHomeView().getBtnConstructed().grabFocus(); break;
case draft: g.getHomeView().getBtnDraft().grabFocus(); break; case draft: FView.this.getHomeView().getBtnDraft().grabFocus(); break;
case sealed: g.getHomeView().getBtnSealed().grabFocus(); break; case sealed: FView.this.getHomeView().getBtnSealed().grabFocus(); break;
case quest: g.getHomeView().getBtnQuest().grabFocus(); break; case quest: FView.this.getHomeView().getBtnQuest().grabFocus(); break;
case settings: g.getHomeView().getBtnSettings().grabFocus(); break; case settings: FView.this.getHomeView().getBtnSettings().grabFocus(); break;
case utilities: g.getHomeView().getBtnUtilities().grabFocus(); break; case utilities: FView.this.getHomeView().getBtnUtilities().grabFocus(); break;
default: default:
} }
} }
}); });
} // End FView() } // End FView()
/** @return {@link javax.swing.JLayeredPane} */
public JLayeredPane getLayeredContentPane() {
return FView.this.lpnContent;
}
/** @return {@link forge.view.toolbox.FOverlay} */
public FOverlay getOverlay() {
return FView.this.overlay;
}
/** @return {@link forge.view.ViewHomeUI} */
public ViewHomeUI getHomeView() {
if (Singletons.getControl().getState() != FControl.HOME_SCREEN) {
throw new IllegalArgumentException("FView$getHomeView\n"
+ "may only be called while the home UI is showing.");
}
return FView.this.home;
}
/** @return {@link forge.view.ViewMatchUI} */
public ViewMatchUI getMatchView() {
if (Singletons.getControl().getState() != FControl.MATCH_SCREEN) {
throw new IllegalArgumentException("FView$getMatchView\n"
+ "may only be called while the match UI is showing.");
}
return FView.this.match;
}
/** @return {@link forge.view.ViewEditorUI} */
public ViewEditorUI getEditorView() {
if (Singletons.getControl().getState() != FControl.DEFAULT_EDITOR) {
throw new IllegalArgumentException("FView$getEditorView\n"
+ "may only be called while the editor UI is showing.");
}
return FView.this.editor;
}
/** @return {@link forge.view.ViewBazaarUI} */
public ViewBazaarUI getBazaarView() {
if (Singletons.getControl().getState() != FControl.QUEST_BAZAAR) {
throw new IllegalArgumentException("FView$getBazaarView\n"
+ "may only be called while the bazaar UI is showing.");
}
return FView.this.bazaar;
}
} }

View File

@@ -1,444 +0,0 @@
/*
* Forge: Play Magic: the Gathering.
* Copyright (C) 2011 Forge Team
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package forge.view;
import java.awt.Dimension;
import java.awt.Frame;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JLayeredPane;
import forge.AllZone;
import forge.Card;
import forge.CardContainer;
import forge.CardList;
import forge.Constant;
import forge.Display;
import forge.GuiMultipleBlockers;
import forge.MyButton;
import forge.Player;
import forge.Singletons;
import forge.control.FControl;
import forge.control.match.ControlField;
import forge.properties.ForgePreferences;
import forge.properties.ForgePreferences.FPref;
import forge.view.home.HomeTopLevel;
import forge.view.match.ViewField;
import forge.view.match.ViewTabber;
import forge.view.toolbox.FOverlay;
import forge.view.toolbox.FSkin;
/**
* Parent JFrame for Forge UI.
*
*/
@SuppressWarnings("serial")
public class GuiTopLevel extends JFrame implements Display, CardContainer {
private final JLayeredPane lpnContent;
private final FControl control;
/**
* Parent JFrame for Forge UI.
*/
public GuiTopLevel() {
super();
this.setMinimumSize(new Dimension(800, 600));
this.setLocationRelativeTo(null);
this.setExtendedState(this.getExtendedState() | Frame.MAXIMIZED_BOTH);
this.lpnContent = new JLayeredPane();
this.lpnContent.setOpaque(true);
this.setContentPane(this.lpnContent);
this.addOverlay();
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setIconImage(FSkin.getIcon(FSkin.ForgeIcons.ICO_FAVICON).getImage());
this.setTitle("Forge: " + Singletons.getModel().getBuildInfo().getVersion());
// Init controller
this.control = new FControl(this);
}
/**
* Adds overlay panel to modal layer. Used when removeAll() has been called
* on the JLayeredPane parent.
*/
public void addOverlay() {
final FOverlay pnlOverlay = new FOverlay();
AllZone.setOverlay(pnlOverlay);
pnlOverlay.setOpaque(false);
pnlOverlay.setVisible(false);
pnlOverlay.setBounds(0, 0, this.getWidth(), this.getHeight());
this.lpnContent.add(pnlOverlay, JLayeredPane.MODAL_LAYER);
}
/**
* Gets the controller.
*
* @return FControl
*/
public FControl getController() {
return this.control;
}
/** @return {@link forge.view.home.HomeTopLevel} */
public HomeTopLevel getHomeView() {
return control.getHomeController().getView();
}
/*
* ========================================================
*
* WILL BE DEPRECATED SOON WITH DISPLAY INTERFACE UPDATE!!!
*
* ========================================================
*/
/*
* (non-Javadoc)
*
* @see forge.Display#showMessage(java.lang.String)
*/
@Override
public void showMessage(final String s) {
control.getMatchController().getView().getPnlMessage().setText(s);
}
/*
* (non-Javadoc)
*
* @see forge.Display#getButtonOK()
*/
@Override
public MyButton getButtonOK() {
final MyButton ok = new MyButton() {
@Override
public void select() {
control.getMatchController().getView().getInputController().getInputControl().selectButtonOK();
}
@Override
public boolean isSelectable() {
return control.getMatchController().getView().getInputController().getView().getBtnOK().isEnabled();
}
@Override
public void setSelectable(final boolean b) {
control.getMatchController().getView().getInputController().getView().getBtnOK().setEnabled(b);
}
@Override
public String getText() {
return control.getMatchController().getView().getInputController().getView().getBtnOK().getText();
}
@Override
public void setText(final String text) {
control.getMatchController().getView().getInputController().getView().getBtnOK().setText(text);
}
@Override
public void reset() {
control.getMatchController().getView().getInputController().getView().getBtnOK().setText("OK");
}
};
return ok;
}
/*
* (non-Javadoc)
*
* @see forge.Display#getButtonCancel()
*/
@Override
public MyButton getButtonCancel() {
final MyButton cancel = new MyButton() {
@Override
public void select() {
control.getMatchController().getView().getInputController().getInputControl().selectButtonCancel();
}
@Override
public boolean isSelectable() {
return control.getMatchController().getView().getInputController().getView().getBtnCancel().isEnabled();
}
@Override
public void setSelectable(final boolean b) {
control.getMatchController().getView().getInputController().getView().getBtnCancel().setEnabled(b);
}
@Override
public String getText() {
return control.getMatchController().getView().getInputController().getView().getBtnCancel().getText();
}
@Override
public void setText(final String text) {
control.getMatchController().getView().getInputController().getView().getBtnCancel().setText(text);
}
@Override
public void reset() {
control.getMatchController().getView().getInputController().getView().getBtnCancel().setText("Cancel");
}
};
return cancel;
}
/*
* (non-Javadoc)
*
* @see forge.Display#showCombat(java.lang.String)
*/
@Override
public void showCombat(final String s0) {
control.getMatchController().getView().getTabberController().getView().updateCombat(s0);
}
/** */
public void showStack() {
control.getMatchController().getView().getTabberController().showPnlStack();
}
/*
* (non-Javadoc)
*
* @see forge.Display#assignDamage(forge.Card, forge.CardList, int)
*/
@Override
public void assignDamage(final Card attacker, final CardList blockers, final int damage) {
if (damage <= 0) {
return;
}
new GuiMultipleBlockers(attacker, blockers, damage, this);
}
/*
* (non-Javadoc)
*
* @see forge.Display#stopAtPhase(forge.Player, java.lang.String)
*/
@Override
public final boolean stopAtPhase(final Player turn, final String phase) {
final List<ControlField> fieldControllers = control.getMatchView().getFieldControllers();
// AI field is at index [0]
if (turn.isComputer()) {
if (phase.equals(Constant.Phase.UPKEEP)) {
return fieldControllers.get(0).getView().getLblUpkeep().getEnabled();
} else if (phase.equals(Constant.Phase.DRAW)) {
return fieldControllers.get(0).getView().getLblDraw().getEnabled();
} else if (phase.equals(Constant.Phase.MAIN1)) {
return fieldControllers.get(0).getView().getLblMain1().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_BEGIN)) {
return fieldControllers.get(0).getView().getLblBeginCombat().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_DECLARE_ATTACKERS)) {
return fieldControllers.get(0).getView().getLblDeclareAttackers().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_DECLARE_BLOCKERS)) {
return fieldControllers.get(0).getView().getLblDeclareBlockers().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_FIRST_STRIKE_DAMAGE)) {
return fieldControllers.get(0).getView().getLblFirstStrike().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_DAMAGE)) {
return fieldControllers.get(0).getView().getLblCombatDamage().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_END)) {
return fieldControllers.get(0).getView().getLblEndCombat().getEnabled();
} else if (phase.equals(Constant.Phase.MAIN2)) {
return fieldControllers.get(0).getView().getLblMain2().getEnabled();
} else if (phase.equals(Constant.Phase.END_OF_TURN)) {
return fieldControllers.get(0).getView().getLblEndTurn().getEnabled();
} else if (phase.equals(Constant.Phase.DRAW)) {
return fieldControllers.get(0).getView().getLblDraw().getEnabled();
}
}
// Human field is at index [1]
else {
if (phase.equals(Constant.Phase.UPKEEP)) {
return fieldControllers.get(1).getView().getLblUpkeep().getEnabled();
} else if (phase.equals(Constant.Phase.DRAW)) {
return fieldControllers.get(1).getView().getLblDraw().getEnabled();
} else if (phase.equals(Constant.Phase.MAIN1)) {
return fieldControllers.get(1).getView().getLblMain1().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_BEGIN)) {
return fieldControllers.get(1).getView().getLblBeginCombat().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_DECLARE_ATTACKERS)) {
return fieldControllers.get(1).getView().getLblDeclareAttackers().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_DECLARE_BLOCKERS)) {
return fieldControllers.get(1).getView().getLblDeclareBlockers().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_FIRST_STRIKE_DAMAGE)) {
return fieldControllers.get(1).getView().getLblFirstStrike().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_DAMAGE)) {
return fieldControllers.get(1).getView().getLblCombatDamage().getEnabled();
} else if (phase.equals(Constant.Phase.COMBAT_END)) {
return fieldControllers.get(1).getView().getLblEndCombat().getEnabled();
} else if (phase.equals(Constant.Phase.MAIN2)) {
return fieldControllers.get(1).getView().getLblMain2().getEnabled();
} else if (phase.equals(Constant.Phase.END_OF_TURN)) {
return fieldControllers.get(1).getView().getLblEndTurn().getEnabled();
} else if (phase.equals(Constant.Phase.DRAW)) {
return fieldControllers.get(1).getView().getLblDraw().getEnabled();
}
}
return true;
}
/**
* Required by Display interface. Due to be deprecated: should be handled by
* a control class, and poorly named; "decking" == "milling" in preferences,
* same terminology should be used throughout project for obvious reasons.
* Unless "decking" is already the correct terminology, in which case,
* everything else is poorly named.
*
* @return boolean
*/
@Override
public boolean canLoseByDecking() {
return Constant.Runtime.MILL[0];
}
/**
* <p>
* loadPrefs.
* </p>
* Required by Display interface. Due to be deprecated: will be handled by
* ControlMatchUI.
*
*
* @return boolean.
*/
@Override
public final boolean loadPrefs() {
final ForgePreferences fp = Singletons.getModel().getPreferences();
final List<ViewField> fieldViews = this.control.getMatchController().getView().getFieldViews();
Constant.Runtime.MILL[0] = fp.getPrefBoolean(FPref.DEV_MILLING_LOSS);
Constant.Runtime.DEV_MODE[0] = fp.getPrefBoolean(FPref.DEV_MODE_ENABLED);
Constant.Runtime.UPLOAD_DRAFT[0] = fp.getPrefBoolean(FPref.UI_UPLOAD_DRAFT);
Constant.Runtime.RANDOM_FOIL[0] = fp.getPrefBoolean(FPref.UI_RANDOM_FOIL);
Constant.Runtime.UPLOAD_DRAFT[0] =
(Constant.Runtime.NET_CONN[0] ? fp.getPrefBoolean(FPref.UI_UPLOAD_DRAFT) : false);
// AI field is at index [0]
fieldViews.get(0).getLblUpkeep().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_UPKEEP));
fieldViews.get(0).getLblDraw().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_DRAW));
fieldViews.get(0).getLblMain1().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_MAIN1));
fieldViews.get(0).getLblBeginCombat().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_BEGINCOMBAT));
fieldViews.get(0).getLblDeclareAttackers().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_DECLAREATTACKERS));
fieldViews.get(0).getLblDeclareBlockers().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_DECLAREBLOCKERS));
fieldViews.get(0).getLblFirstStrike().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_FIRSTSTRIKE));
fieldViews.get(0).getLblCombatDamage().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_COMBATDAMAGE));
fieldViews.get(0).getLblEndCombat().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_ENDCOMBAT));
fieldViews.get(0).getLblMain2().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_MAIN2));
fieldViews.get(0).getLblEndTurn().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_EOT));
fieldViews.get(0).getLblCleanup().setEnabled(fp.getPrefBoolean(FPref.PHASE_AI_CLEANUP));
// Human field is at index [1]
fieldViews.get(1).getLblUpkeep().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_UPKEEP));
fieldViews.get(1).getLblDraw().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_DRAW));
fieldViews.get(1).getLblMain1().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_MAIN1));
fieldViews.get(1).getLblBeginCombat().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_BEGINCOMBAT));
fieldViews.get(1).getLblDeclareAttackers().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREATTACKERS));
fieldViews.get(1).getLblDeclareBlockers().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREBLOCKERS));
fieldViews.get(1).getLblFirstStrike().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_FIRSTSTRIKE));
fieldViews.get(1).getLblCombatDamage().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_COMBATDAMAGE));
fieldViews.get(1).getLblEndCombat().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_ENDCOMBAT));
fieldViews.get(1).getLblMain2().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_MAIN2));
fieldViews.get(1).getLblEndTurn().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_EOT));
fieldViews.get(1).getLblCleanup().setEnabled(fp.getPrefBoolean(FPref.PHASE_HUMAN_CLEANUP));
this.control.getMatchController().getView().setLayoutParams(fp.getPref(FPref.UI_LAYOUT_PARAMS));
return true;
}
/**
* <p>
* savePrefs.
* </p>
* Required by Display interface. Due to be deprecated: should be in FModel.
* Also, this functionality is already performed elsewhere
* in the code base.
*
* @return a boolean.
*/
@Override
public final boolean savePrefs() {
final ForgePreferences fp = Singletons.getModel().getPreferences();
final List<ViewField> fieldViews = this.control.getMatchController().getView().getFieldViews();
// AI field is at index [0]
fp.setPref(FPref.PHASE_AI_UPKEEP, String.valueOf(fieldViews.get(0).getLblUpkeep().getEnabled()));
fp.setPref(FPref.PHASE_AI_DRAW, String.valueOf(fieldViews.get(0).getLblDraw().getEnabled()));
fp.setPref(FPref.PHASE_AI_MAIN1, String.valueOf(fieldViews.get(0).getLblMain1().getEnabled()));
fp.setPref(FPref.PHASE_AI_BEGINCOMBAT, String.valueOf(fieldViews.get(0).getLblBeginCombat().getEnabled()));
fp.setPref(FPref.PHASE_AI_DECLAREATTACKERS, String.valueOf(fieldViews.get(0).getLblDeclareAttackers().getEnabled()));
fp.setPref(FPref.PHASE_AI_DECLAREBLOCKERS, String.valueOf(fieldViews.get(0).getLblDeclareBlockers().getEnabled()));
fp.setPref(FPref.PHASE_AI_FIRSTSTRIKE, String.valueOf(fieldViews.get(0).getLblFirstStrike().getEnabled()));
fp.setPref(FPref.PHASE_AI_COMBATDAMAGE, String.valueOf(fieldViews.get(0).getLblCombatDamage().getEnabled()));
fp.setPref(FPref.PHASE_AI_ENDCOMBAT, String.valueOf(fieldViews.get(0).getLblEndCombat().getEnabled()));
fp.setPref(FPref.PHASE_AI_MAIN2, String.valueOf(fieldViews.get(0).getLblMain2().getEnabled()));
fp.setPref(FPref.PHASE_AI_EOT, String.valueOf(fieldViews.get(0).getLblEndTurn().getEnabled()));
fp.setPref(FPref.PHASE_AI_CLEANUP, String.valueOf(fieldViews.get(0).getLblCleanup().getEnabled()));
// Human field is at index [1]
fp.setPref(FPref.PHASE_HUMAN_UPKEEP, String.valueOf(fieldViews.get(1).getLblUpkeep().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_DRAW, String.valueOf(fieldViews.get(1).getLblDraw().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_MAIN1, String.valueOf(fieldViews.get(1).getLblMain1().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_BEGINCOMBAT, String.valueOf(fieldViews.get(1).getLblBeginCombat().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_DECLAREATTACKERS, String.valueOf(fieldViews.get(1).getLblDeclareAttackers().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_DECLAREBLOCKERS, String.valueOf(fieldViews.get(1).getLblDeclareBlockers().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_FIRSTSTRIKE, String.valueOf(fieldViews.get(1).getLblFirstStrike().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_COMBATDAMAGE, String.valueOf(fieldViews.get(1).getLblCombatDamage().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_ENDCOMBAT, String.valueOf(fieldViews.get(1).getLblEndCombat().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_MAIN2, String.valueOf(fieldViews.get(1).getLblMain2().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_EOT, String.valueOf(fieldViews.get(1).getLblEndTurn().getEnabled()));
fp.setPref(FPref.PHASE_HUMAN_CLEANUP, String.valueOf(fieldViews.get(1).getLblCleanup().getEnabled()));
ViewTabber v = this.control.getMatchController().getView().getTabberController().getView();
Constant.Runtime.MILL[0] = v.getLblMilling().getEnabled();
fp.setPref(FPref.DEV_MILLING_LOSS, String.valueOf(Constant.Runtime.MILL[0]));
fp.setPref(FPref.UI_LAYOUT_PARAMS, String.valueOf(control.getMatchController().getView().getLayoutParams()));
fp.setPref(FPref.DEV_UNLIMITED_LAND, String.valueOf(v.getLblUnlimitedLands().getEnabled()));
fp.save();
return true;
}
/*
* (non-Javadoc)
*
* @see forge.Display#setCard(forge.Card)
*/
@Override
public void setCard(final Card c) {
this.control.getMatchView().getDetailController().showCard(c);
this.control.getMatchView().getPictureController().showCard(c);
}
/**
* Required by display interface. Due to be deprecated: handled by control
* class.
*
* @return a {@link forge.Card} object.
*/
public final Card getCard() {
return this.control.getMatchView().getDetailController().getCurrentCard();
}
}

View File

@@ -18,6 +18,7 @@
package forge.view; package forge.view;
import forge.Singletons; import forge.Singletons;
import forge.control.FControl;
import forge.error.ErrorViewer; import forge.error.ErrorViewer;
import forge.error.ExceptionHandler; import forge.error.ExceptionHandler;
import forge.model.FModel; import forge.model.FModel;
@@ -45,15 +46,20 @@ public final class Main {
try { try {
final FModel model = new FModel(); final FModel model = new FModel();
final FView view = new FView(); final FView view = new FView();
final FControl control = new FControl();
Singletons.setModel(model); Singletons.setModel(model);
Singletons.setView(view); Singletons.setView(view);
Singletons.setControl(control);
// Instantiate FGameState for TriggerHandler on card objects created in preloader. // Instantiate FGameState for TriggerHandler on card objects created in preloader.
model.resetGameState(); model.resetGameState();
// Start splash frame. // Start splash frame.
view.initialize(); view.initialize();
// Start control on FView.
control.initialize();
} catch (final Throwable exn) { } catch (final Throwable exn) {
ErrorViewer.showError(exn); ErrorViewer.showError(exn);
} }

View File

@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package forge.view.home; package forge.view;
import java.awt.Color; import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
@@ -56,7 +56,8 @@ public class SplashFrame extends JFrame {
private static final int CLOSEBTN_SIDELENGTH = 15; private static final int CLOSEBTN_SIDELENGTH = 15;
private static final Color CLOSEBTN_COLOR = new Color(215, 208, 188); private static final Color CLOSEBTN_COLOR = new Color(215, 208, 188);
private final FProgressBar barLoader; /** Preload bar, static accessible. */
public static final FProgressBar PROGRESS_BAR = new FProgressBar();
/** /**
* Create the frame; this <strong>must</strong> be called from an event * Create the frame; this <strong>must</strong> be called from an event
@@ -140,21 +141,16 @@ public class SplashFrame extends JFrame {
pnlContent.getInputMap().put(KeyStroke.getKeyStroke("ESCAPE"), "escAction"); pnlContent.getInputMap().put(KeyStroke.getKeyStroke("ESCAPE"), "escAction");
pnlContent.getActionMap().put("escAction", actClose); pnlContent.getActionMap().put("escAction", actClose);
barLoader = new FProgressBar(); PROGRESS_BAR.setString("Welcome to Forge.");
barLoader.setString("Welcome to Forge."); PROGRESS_BAR.setBounds(SplashFrame.BAR_PADDING_X, splashHeightPx - SplashFrame.BAR_PADDING_Y
barLoader.setBounds(SplashFrame.BAR_PADDING_X, splashHeightPx - SplashFrame.BAR_PADDING_Y
- SplashFrame.BAR_HEIGHT, splashWidthPx - (2 * SplashFrame.BAR_PADDING_X), SplashFrame.BAR_HEIGHT); - SplashFrame.BAR_HEIGHT, splashWidthPx - (2 * SplashFrame.BAR_PADDING_X), SplashFrame.BAR_HEIGHT);
pnlContent.add(barLoader); pnlContent.add(PROGRESS_BAR);
final JLabel bgLabel = new JLabel(bgIcon); final JLabel bgLabel = new JLabel(bgIcon);
bgLabel.setBounds(0, 0, splashWidthPx, splashHeightPx); bgLabel.setBounds(0, 0, splashWidthPx, splashHeightPx);
pnlContent.add(bgLabel); pnlContent.add(bgLabel);
this.pack(); this.pack();
} this.setVisible(true);
/** @return FProgressBar &emsp; The preloader. */
public final FProgressBar getProgressBar() {
return this.barLoader;
} }
} }

View File

@@ -1,4 +1,4 @@
package forge.view.bazaar; package forge.view;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.SwingConstants; import javax.swing.SwingConstants;
@@ -7,6 +7,7 @@ import javax.swing.SwingUtilities;
import net.miginfocom.swing.MigLayout; import net.miginfocom.swing.MigLayout;
import forge.Command; import forge.Command;
import forge.quest.data.bazaar.QuestStallManager; import forge.quest.data.bazaar.QuestStallManager;
import forge.view.bazaar.ViewStall;
import forge.view.toolbox.FLabel; import forge.view.toolbox.FLabel;
import forge.view.toolbox.FPanel; import forge.view.toolbox.FPanel;
import forge.view.toolbox.FSkin; import forge.view.toolbox.FSkin;
@@ -15,14 +16,14 @@ import forge.view.toolbox.FSkin;
/** Lays out containers and borders for resizeable layout and /** Lays out containers and borders for resizeable layout and
* instantiates top-level controller for bazaar UI. */ * instantiates top-level controller for bazaar UI. */
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class BazaarTopLevel extends FPanel { public class ViewBazaarUI extends FPanel {
private final JPanel pnlAllStalls; private final JPanel pnlAllStalls;
private final ViewStall pnlSingleStall; private final ViewStall pnlSingleStall;
private FLabel previousSelected; private FLabel previousSelected;
/** Lays out containers and borders for resizeable layout and /** Lays out containers and borders for resizeable layout and
* instantiates top-level controller for bazaar UI. */ * instantiates top-level controller for bazaar UI. */
public BazaarTopLevel() { public ViewBazaarUI() {
super(); super();
// Final inits // Final inits

View File

@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package forge.view.editor; package forge.view;
import forge.view.toolbox.FPanel; import forge.view.toolbox.FPanel;
@@ -26,12 +26,12 @@ import forge.view.toolbox.FPanel;
*/ */
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class EditorTopLevel extends FPanel { public class ViewEditorUI extends FPanel {
/** /**
* Instantiates a new editor top level. * Instantiates a new editor top level.
*/ */
public EditorTopLevel() { public ViewEditorUI() {
super(); super();
} }
} }

View File

@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package forge.view.home; package forge.view;
import java.awt.Rectangle; import java.awt.Rectangle;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
@@ -37,6 +37,12 @@ import forge.control.home.ControlSealed;
import forge.control.home.ControlUtilities; import forge.control.home.ControlUtilities;
import forge.properties.ForgePreferences; import forge.properties.ForgePreferences;
import forge.properties.ForgePreferences.FPref; import forge.properties.ForgePreferences.FPref;
import forge.view.home.ViewConstructed;
import forge.view.home.ViewDraft;
import forge.view.home.ViewQuest;
import forge.view.home.ViewSealed;
import forge.view.home.ViewSettings;
import forge.view.home.ViewUtilities;
import forge.view.toolbox.FButton; import forge.view.toolbox.FButton;
import forge.view.toolbox.FPanel; import forge.view.toolbox.FPanel;
import forge.view.toolbox.FSkin; import forge.view.toolbox.FSkin;
@@ -49,7 +55,7 @@ import forge.view.toolbox.FSkin;
*/ */
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class HomeTopLevel extends FPanel { public class ViewHomeUI extends FPanel {
private JPanel pnlMenu, pnlContent; private JPanel pnlMenu, pnlContent;
private FButton btnDraft, btnConstructed, btnSealed, btnQuest, btnSettings, btnUtilities, btnExit, btnDeckEditor; private FButton btnDraft, btnConstructed, btnSealed, btnQuest, btnSettings, btnUtilities, btnExit, btnDeckEditor;
private String constraints; private String constraints;
@@ -68,7 +74,7 @@ public class HomeTopLevel extends FPanel {
/** /**
* Instantiates a new home top level. * Instantiates a new home top level.
*/ */
public HomeTopLevel() { public ViewHomeUI() {
super(); super();
constructed = new ViewConstructed(this); constructed = new ViewConstructed(this);
@@ -131,7 +137,7 @@ public class HomeTopLevel extends FPanel {
btnDeckEditor = new FButton(); btnDeckEditor = new FButton();
btnDeckEditor.setAction(new AbstractAction() { btnDeckEditor.setAction(new AbstractAction() {
public void actionPerformed(ActionEvent arg0) { public void actionPerformed(ActionEvent arg0) {
HomeTopLevel.this.getUtilitiesController().showDeckEditor(null, null); ViewHomeUI.this.getUtilitiesController().showDeckEditor(null, null);
} }
}); });
btnDeckEditor.setText("Deck Editor"); btnDeckEditor.setText("Deck Editor");
@@ -331,7 +337,7 @@ public class HomeTopLevel extends FPanel {
} }
/** @return ControlHomeUI */ /** @return ControlHomeUI */
public ControlHomeUI getController() { public ControlHomeUI getControl() {
return control; return control;
} }

View File

@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package forge.view.match; package forge.view;
import java.awt.Color; import java.awt.Color;
import java.awt.Cursor; import java.awt.Cursor;
@@ -23,23 +23,21 @@ import java.awt.Graphics;
import java.awt.Rectangle; import java.awt.Rectangle;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter; import java.awt.event.MouseMotionAdapter;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.swing.JFrame; import javax.swing.JButton;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JTextArea;
import net.miginfocom.swing.MigLayout; import net.miginfocom.swing.MigLayout;
import forge.AllZone;
import forge.control.ControlMatchUI; import forge.control.ControlMatchUI;
import forge.control.match.ControlDetail; import forge.view.match.ViewBattlefield;
import forge.control.match.ControlDock; import forge.view.match.ViewDetail;
import forge.control.match.ControlField; import forge.view.match.ViewDock;
import forge.control.match.ControlHand; import forge.view.match.ViewField;
import forge.control.match.ControlInput; import forge.view.match.ViewHand;
import forge.control.match.ControlPicture; import forge.view.match.ViewMessage;
import forge.control.match.ControlTabber; import forge.view.match.ViewPicture;
import forge.view.match.ViewTabber;
import forge.view.toolbox.FPanel; import forge.view.toolbox.FPanel;
import forge.view.toolbox.FSkin; import forge.view.toolbox.FSkin;
@@ -52,16 +50,15 @@ import forge.view.toolbox.FSkin;
*/ */
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class MatchTopLevel extends FPanel { public class ViewMatchUI extends FPanel {
private ViewBattlefield battlefield; private final ControlMatchUI control;
private ViewDetail detail; private final ViewBattlefield battlefield;
private ViewDock dock; private final ViewDetail detail;
private ViewHand hand; private final ViewDock dock;
private ViewInput input; private final ViewHand hand;
private ViewPicture picture; private final ViewMessage message;
private ViewTabber tabber; private final ViewPicture picture;
private final ViewTabber tabber;
private ControlMatchUI control;
private int w, h, b; private int w, h, b;
private double delta; private double delta;
@@ -90,7 +87,7 @@ public class MatchTopLevel extends FPanel {
* - Implements Display interface used in singleton pattern * - Implements Display interface used in singleton pattern
* *
*/ */
public MatchTopLevel() { public ViewMatchUI() {
super(); super();
// Set properties // Set properties
@@ -134,7 +131,7 @@ public class MatchTopLevel extends FPanel {
add(pnlB6); add(pnlB6);
// Declare and add various view components // Declare and add various view components
input = new ViewInput(); message = new ViewMessage();
hand = new ViewHand(this); hand = new ViewHand(this);
dock = new ViewDock(); dock = new ViewDock();
battlefield = new ViewBattlefield(); battlefield = new ViewBattlefield();
@@ -143,7 +140,7 @@ public class MatchTopLevel extends FPanel {
picture = new ViewPicture(); picture = new ViewPicture();
String constraints = "w 100%!, h 100%!"; String constraints = "w 100%!, h 100%!";
pnlInput.add(input, constraints); pnlInput.add(message, constraints);
pnlHand.add(hand, constraints); pnlHand.add(hand, constraints);
pnlBattlefield.add(battlefield, constraints); pnlBattlefield.add(battlefield, constraints);
pnlDock.add(dock, constraints); pnlDock.add(dock, constraints);
@@ -153,7 +150,7 @@ public class MatchTopLevel extends FPanel {
// After all components are in place, instantiate controller. // After all components are in place, instantiate controller.
addDragListeners(); addDragListeners();
this.control = new ControlMatchUI(this); control = new ControlMatchUI(this);
} }
/** /**
@@ -357,124 +354,64 @@ public class MatchTopLevel extends FPanel {
super.paintComponent(g); super.paintComponent(g);
} }
// ========== Retrieval functions for easier interaction with children //========== Retrieval methods
// panels.
/** /** @return {@link forge.control.ControlMatchUI} */
* Retrieves top level controller (actions, observers, etc.) for this UI. public ControlMatchUI getControl() {
*
* @return ControlMatchUI
*/
public ControlMatchUI getController() {
return this.control; return this.control;
} }
/**
* Gets the detail controller.
*
* @return ControlDetail
*/
public ControlDetail getDetailController() {
return MatchTopLevel.this.detail.getController();
}
/**
* Gets the picture controller.
*
* @return ControlPicture
*/
public ControlPicture getPictureController() {
return MatchTopLevel.this.picture.getController();
}
/**
* Gets the tabber controller.
*
* @return ControlTabber
*/
public ControlTabber getTabberController() {
return MatchTopLevel.this.tabber.getController();
}
/**
* Gets the input controller.
*
* @return ControlInput
*/
public ControlInput getInputController() {
return MatchTopLevel.this.input.getController();
}
/**
* Gets the hand controller.
*
* @return ControlHand
*/
public ControlHand getHandController() {
return MatchTopLevel.this.hand.getController();
}
/**
* Gets the dock controller.
*
* @return ControlDock
*/
public ControlDock getDockController() {
return MatchTopLevel.this.dock.getController();
}
/**
* Gets the field controllers.
*
* @return List<ControlField>
*/
public List<ControlField> getFieldControllers() {
final List<ViewField> fields = this.battlefield.getFields();
final List<ControlField> controllers = new ArrayList<ControlField>();
for (final ViewField f : fields) {
controllers.add(f.getController());
}
return controllers;
}
/** /**
* Gets the field views. * Gets the field views.
* *
* @return List<ViewField> * @return List<ViewField>
*/ */
public List<ViewField> getFieldViews() { public List<ViewField> getFieldViews() {
return MatchTopLevel.this.battlefield.getFields(); return ViewMatchUI.this.battlefield.getFields();
} }
// ========== Input panel and human hand retrieval functions /** @return {@link forge.view.match.ViewDock} */
// Also due to be deprecated. Access should be handled by child component public ViewDock getDockView() {
// view and/or controller. return this.dock;
/**
* Gets the pnl message.
*
* @return <b>JTextArea</b> Message area of input panel.
*/
public JTextArea getPnlMessage() {
return MatchTopLevel.this.input.getTarMessage();
} }
/** /** @return {@link forge.view.match.ViewTabber} */
* Gets the pnl hand. public ViewTabber getViewTabber() {
* return this.tabber;
* @return <b>ViewHand</b> Retrieves player hand panel.
*/
public ViewHand getPnlHand() {
return MatchTopLevel.this.hand;
} }
/**
* Gets the top level frame. /** @return {@link forge.view.match.ViewDetail} */
* public ViewDetail getViewDetail() {
* @return JFrame return this.detail;
*/ }
public JFrame getTopLevelFrame() {
return (JFrame) AllZone.getDisplay(); /** @return {@link forge.view.match.ViewPicture} */
public ViewPicture getViewPicture() {
return this.picture;
}
/** @return {@link forge.view.match.ViewHand} */
public ViewHand getViewHand() {
return this.hand;
}
/** @return {@link forge.view.match.ViewMessage} */
public ViewMessage getViewMessage() {
return this.message;
}
/** @return {@link forge.view.match.ViewBattlefield} */
public ViewBattlefield getViewBattlefield() {
return this.battlefield;
}
/** @return {@link javax.swing.JButton} */
public JButton getBtnCancel() {
return this.message.getBtnCancel();
}
/** @return {@link javax.swing.JButton} */
public JButton getBtnOK() {
return this.message.getBtnOK();
} }
} }

View File

@@ -7,8 +7,8 @@ import javax.swing.SwingUtilities;
import net.miginfocom.swing.MigLayout; import net.miginfocom.swing.MigLayout;
import forge.AllZone; import forge.AllZone;
import forge.Command; import forge.Command;
import forge.Singletons;
import forge.quest.data.bazaar.QuestStallPurchasable; import forge.quest.data.bazaar.QuestStallPurchasable;
import forge.view.GuiTopLevel;
import forge.view.toolbox.FLabel; import forge.view.toolbox.FLabel;
import forge.view.toolbox.FPanel; import forge.view.toolbox.FPanel;
import forge.view.toolbox.FSkin; import forge.view.toolbox.FSkin;
@@ -49,7 +49,7 @@ public class ViewItem extends FPanel {
AllZone.getQuestData().addCredits(getItem().getSellingPrice()); AllZone.getQuestData().addCredits(getItem().getSellingPrice());
getItem().onPurchase(); getItem().onPurchase();
AllZone.getQuestData().saveData(); AllZone.getQuestData().saveData();
((GuiTopLevel) AllZone.getDisplay()).getController().getBazaarView().refreshLastInstance(); Singletons.getView().getBazaarView().refreshLastInstance();
} }
}); });
} }

View File

@@ -35,6 +35,7 @@ import forge.control.bazaar.ControlStall;
import forge.quest.data.bazaar.QuestStallDefinition; import forge.quest.data.bazaar.QuestStallDefinition;
import forge.quest.data.bazaar.QuestStallManager; import forge.quest.data.bazaar.QuestStallManager;
import forge.quest.data.bazaar.QuestStallPurchasable; import forge.quest.data.bazaar.QuestStallPurchasable;
import forge.view.ViewBazaarUI;
import forge.view.toolbox.FLabel; import forge.view.toolbox.FLabel;
import forge.view.toolbox.FScrollPane; import forge.view.toolbox.FScrollPane;
import forge.view.toolbox.FSkin; import forge.view.toolbox.FSkin;
@@ -54,12 +55,12 @@ public class ViewStall extends JPanel {
private final JPanel pnlInventory; private final JPanel pnlInventory;
private final FScrollPane scrInventory; private final FScrollPane scrInventory;
private final ControlStall control; private final ControlStall control;
private final BazaarTopLevel parentView; private final ViewBazaarUI parentView;
private List<ViewItem> lstItemPanels; private List<ViewItem> lstItemPanels;
private QuestStallDefinition stall; private QuestStallDefinition stall;
/** @param v0 {@link forge.view.bazaar.BazaarTopLevel} */ /** @param v0 {@link forge.view.ViewBazaarUI} */
protected ViewStall(final BazaarTopLevel v0) { public ViewStall(final ViewBazaarUI v0) {
// Final/component inits // Final/component inits
this.lblStallName = new FLabel.Builder().text("").fontAlign(SwingConstants.CENTER).build(); this.lblStallName = new FLabel.Builder().text("").fontAlign(SwingConstants.CENTER).build();
this.lblEmpty = new FLabel.Builder() this.lblEmpty = new FLabel.Builder()
@@ -171,8 +172,8 @@ public class ViewStall extends JPanel {
} }
} }
/** @return {@link forge.view.bazaar.BazaarTopLevel} */ /** @return {@link forge.view.ViewBazaarUI} */
public BazaarTopLevel getParentView() { public ViewBazaarUI getParentView() {
return this.parentView; return this.parentView;
} }
} }

View File

@@ -2,6 +2,7 @@ package forge.view.home;
import javax.swing.JButton; import javax.swing.JButton;
import forge.view.ViewHomeUI;
import forge.view.toolbox.FSkin; import forge.view.toolbox.FSkin;
/** /**
@@ -11,9 +12,9 @@ import forge.view.toolbox.FSkin;
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class StartButton extends JButton { public class StartButton extends JButton {
/** /**
* @param v0 &emsp; HomeTopLevel * @param v0 &emsp; ViewHomeUI
*/ */
public StartButton(HomeTopLevel v0) { public StartButton(ViewHomeUI v0) {
super(); super();
setRolloverEnabled(true); setRolloverEnabled(true);
setRolloverIcon(FSkin.getIcon(FSkin.ButtonImages.IMG_BTN_START_OVER)); setRolloverIcon(FSkin.getIcon(FSkin.ButtonImages.IMG_BTN_START_OVER));

Some files were not shown because too many files have changed in this diff Show More