package NET.worlds.scape; import NET.worlds.console.Cursor; import NET.worlds.network.URL; import java.io.IOException; import java.net.MalformedURLException; public class SetURLAction extends SetPropertyAction { URL _value; private static Object classCookie = new Object(); @Override public Persister trigger(Event e, Persister seqID) { if (this.useParam()) { try { this._value = new URL(this.param()); } catch (MalformedURLException var4) { System.out.println(this.getName() + " unable to parse " + this.paramName()); } } this.set(this._value); return null; } @Override public Object properties(int index, int offset, int mode, Object value) throws NoSuchPropertyException { Object ret = null; switch (index - offset) { case 0: if (mode == 0) { ret = URLPropertyEditor.make( new Property(this, index, "Set To").allowSetNull(), "ani;console;cur;drone;mid;mov;pilot;ra;ram;rwg;rwx;wav;wob;world;" + TextureDecoder.getAllExts(), Cursor.getSysCursorURLs() ); } else if (mode == 1) { ret = this._value; } else if (mode == 2) { this._value = (URL)value; } break; default: ret = super.properties(index, offset + 1, mode, value); } return ret; } @Override public void saveState(Saver s) throws IOException { s.saveVersion(1, classCookie); super.saveState(s); URL.save(s, this._value); } @Override public void restoreState(Restorer r) throws IOException, TooNewException { switch (r.restoreVersion(classCookie)) { case 1: super.restoreState(r); this._value = URL.restore(r); return; default: throw new TooNewException(); } } }