diff options
| author | Fuwn <[email protected]> | 2026-02-12 22:33:32 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-02-12 22:33:32 -0800 |
| commit | c7a9d4a6bd53ed7d61731770f2f10e8b9fd435f9 (patch) | |
| tree | df9f48bf128a6c0186a8e91857d6ff30fe0e9f18 /NET/worlds/console/SavedAvPart.java | |
| download | worldsplayer-c7a9d4a6bd53ed7d61731770f2f10e8b9fd435f9.tar.xz worldsplayer-c7a9d4a6bd53ed7d61731770f2f10e8b9fd435f9.zip | |
Initial commit
Diffstat (limited to 'NET/worlds/console/SavedAvPart.java')
| -rw-r--r-- | NET/worlds/console/SavedAvPart.java | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/NET/worlds/console/SavedAvPart.java b/NET/worlds/console/SavedAvPart.java new file mode 100644 index 0000000..73d2b6a --- /dev/null +++ b/NET/worlds/console/SavedAvPart.java @@ -0,0 +1,155 @@ +package NET.worlds.console; + +import NET.worlds.network.URL; +import NET.worlds.scape.FrameEvent; +import NET.worlds.scape.Restorer; +import NET.worlds.scape.Saver; +import java.awt.CheckboxMenuItem; +import java.awt.Container; +import java.awt.Event; +import java.awt.Font; +import java.awt.Menu; +import java.awt.MenuItem; +import java.util.Vector; + +public class SavedAvPart extends Menu implements FramePart, DialogReceiver { + private static final long serialVersionUID = -3931139364330871273L; + private static final int firstUserItem = 3; + private static final String avsFileName = "Gamma.avatars"; + private static URL savedAvsURL = URL.make("home:Gamma.avatars"); + private static Vector<Object> savedAvatars; + private static Font font = new Font(Console.message("MenuFont"), 0, 12); + private Menu menu; + private MenuItem saveItem = new MenuItem(Console.message("Save-Avatar")); + private MenuItem deleteItem = new MenuItem(Console.message("Delete-Avatar")); + private DefaultConsole console; + + public SavedAvPart() { + super(Console.message("Saved-Avatars")); + if (savedAvatars == null) { + loadAvatars(); + } + } + + private static void loadAvatars() { + try { + Restorer r = new Restorer(savedAvsURL); + savedAvatars = r.restoreVector(); + r.done(); + } catch (Exception var1) { + savedAvatars = new Vector<Object>(); + } + } + + private static void saveAvatars() { + try { + Saver s = new Saver(savedAvsURL); + s.saveVector(savedAvatars); + s.done(); + } catch (Exception var1) { + } + } + + static int getAvatarCount() { + return savedAvatars.size(); + } + + private static SavedAvMenuItem getAvatar(int index) { + return (SavedAvMenuItem)savedAvatars.elementAt(index); + } + + static String getAvatarName(int index) { + return getAvatar(index).getLabel(); + } + + static String getAvatarAvatar(int index) { + return getAvatar(index).getAvatar(); + } + + private SavedAvMenuItem addAvatar(String name, String avatar) { + SavedAvMenuItem item = new SavedAvMenuItem(name, avatar); + item.setFont(font); + this.add(item); + savedAvatars.addElement(item); + saveAvatars(); + return item; + } + + void removeAvatar(int index) { + Object item = savedAvatars.elementAt(index); + savedAvatars.removeElementAt(index); + this.remove(index + 3); + saveAvatars(); + this.console.deletedSavedAvatar((CheckboxMenuItem)item); + } + + @Override + public void dialogDone(Object who, boolean confirmed) { + if (confirmed) { + SavedAvAddDialog adder = (SavedAvAddDialog)who; + URL avName = this.console.getDefaultAvatarURL(); + if (avName != null) { + this.console.setCurrentAvatarItem(this.addAvatar(adder.getName(), avName.getAbsolute())); + } + } + } + + @Override + public void activate(Console c, Container f, Console prev) { + this.console = (DefaultConsole)c; + this.saveItem.setFont(font); + this.deleteItem.setFont(font); + this.add(this.saveItem); + this.add(this.deleteItem); + this.addSeparator(); + + for (int i = 0; i < savedAvatars.size(); i++) { + MenuItem item = (MenuItem)savedAvatars.elementAt(i); + item.setFont(font); + this.add(item); + } + } + + @Override + public void deactivate() { + this.removeAll(); + } + + @Override + public boolean action(Event event, Object what) { + Object target = event.target; + if (target == this.saveItem) { + new SavedAvAddDialog(Console.getFrame(), this); + } else if (target == this.deleteItem) { + new SavedAvDeleteDialog(this); + } else { + if (!(target instanceof SavedAvMenuItem)) { + return false; + } + + SavedAvMenuItem item = (SavedAvMenuItem)target; + this.console.setNextAvatar(URL.make(item.getAvatar()), item); + } + + return true; + } + + @Override + public boolean handle(FrameEvent f) { + return true; + } + + public CheckboxMenuItem findMenuItem(URL url) { + String name = url.getAbsolute(); + int count = getAvatarCount(); + + for (int i = 0; i < count; i++) { + SavedAvMenuItem item = getAvatar(i); + if (item.getAvatar().equals(name)) { + return item; + } + } + + return null; + } +} |