1 19 package org.lucane.applications.slideshow; 20 21 import org.lucane.applications.slideshow.gui.FollowerWindow; 22 import org.lucane.applications.slideshow.gui.PreloadDialog; 23 import org.lucane.applications.slideshow.gui.StarterWindow; 24 import org.lucane.applications.slideshow.net.SlideClient; 25 import org.lucane.applications.slideshow.net.SlideServer; 26 import org.lucane.client.*; 27 import org.lucane.client.widgets.DialogBox; 28 import org.lucane.common.*; 29 import org.lucane.common.net.ObjectConnection; 30 31 import java.io.File ; 32 import java.util.List ; 33 34 import javax.swing.JFileChooser ; 35 36 public class SlideShow 37 extends Plugin 38 { 39 private ConnectInfo[] friends; 41 private SlideServer slideServer; 42 private StarterWindow starterWindow; 43 44 private SlideClient slideClient; 46 private FollowerWindow followerWindow; 47 48 public SlideShow() 49 { 50 } 51 52 public Plugin newInstance(ConnectInfo[] friends) 53 { 54 return new SlideShow(friends); 55 } 56 57 public SlideShow(ConnectInfo[] friends) 58 { 59 this.friends = friends; 60 } 61 62 public void load(ObjectConnection oc, ConnectInfo who, String data) 63 { 64 this.friends = new ConnectInfo[] {who}; 65 this.slideClient = new SlideClient(this, oc); 66 } 67 68 public void start() 69 { 70 JFileChooser chooser = new JFileChooser (); 72 chooser.setFileFilter(new ImageFileFilter(true, tr("lbl.images"))); 73 if(chooser.showOpenDialog(null) != JFileChooser.APPROVE_OPTION) 74 { 75 exit(); 76 return; 77 } 78 79 PreloadDialog dialog = new PreloadDialog(this); 80 dialog.show(); 81 82 File dir = chooser.getCurrentDirectory(); 84 File [] files = dir.listFiles(new ImageFileFilter(false, tr("lbl.images"))); 85 dialog.setMaxValue(files.length); 86 87 List list = FileUtils.sortFiles(files); 89 Object [] objects = FileUtils.preloadImages(this, list, dialog); 90 91 starterWindow = new StarterWindow(this); 93 starterWindow.setImages(objects); 94 starterWindow.show(); 95 dialog.dispose(); 96 97 slideServer = new SlideServer(this); 98 slideServer.sendInvitations(friends); 99 } 100 101 public void follow() 102 { 103 String msg = tr("msg.followSlideShow").replaceAll("%1", friends[0].getName()); 104 if(DialogBox.question(getTitle(), msg)) 105 { 106 followerWindow = new FollowerWindow(this); 107 slideClient.acceptSlideShow(); 108 followerWindow.show(); 109 } 110 else 111 slideClient.rejectSlideShow(); 112 } 113 114 116 public SlideServer getServer() 117 { 118 return slideServer; 119 } 120 121 public StarterWindow getStarterWindow() 122 { 123 return starterWindow; 124 } 125 126 public SlideClient getClient() 127 { 128 return slideClient; 129 } 130 131 public FollowerWindow getFollowerWindow() 132 { 133 return followerWindow; 134 } 135 } 136 137 | Popular Tags |