Example #1
0
 public Tabcontainer(IRiddleHandler handler)
 {
     DataContext = handler;
     InitializeComponent();
     Header = handler.Name;
     Preview();
 }
Example #2
0
        // Show page fro the position
        public void LoadScene()
        {
            BookSource Cache = DataContext as BookSource;

            Handler = Cache.GetCurrentHandler();
            PreparePage();
        }
Example #3
0
        private void Preview()
        {
            IRiddleHandler h = DataContext as IRiddleHandler;

            h.ClearAnswer();
            h.CreateReadOnly();
            x_show.Content = h.DisplayPage;
        }
Example #4
0
        private void CreateContentClick(object sender, RoutedEventArgs e)
        {
            BookSource     s = DataContext as BookSource;
            IRiddleHandler h = x_types.SelectedItem as IRiddleHandler;

            h.Create();
            s.CreatePage();
            s.SetPage(h.CreateRiddle());
            LoadScene();
        }
Example #5
0
        private List <IRiddleHandler> InitPlugins()
        {
            Assembly assem = Assembly.GetExecutingAssembly();
            Uri      ur    = new Uri(assem.CodeBase);
            FileInfo fi    = new FileInfo(ur.AbsolutePath);
            string   s     = fi.Directory.FullName;

            //find all dlls
            string[] dlls = Directory.GetFiles(s + "\\Plugins", "*.dll");
            ICollection <Assembly> assemblies = new List <Assembly>(dlls.Length);
            List <IRiddleHandler>  riddles    = new List <IRiddleHandler>();

            // first  the basic ones:
            riddles.Add(new Write.Text.TextHandler());
            riddles.Add(new Write.Picture.ImageHandler());
            foreach (string dllFile in dlls)
            {
                AssemblyName an       = AssemblyName.GetAssemblyName(dllFile);
                Assembly     assembly = Assembly.Load(an);
                assemblies.Add(assembly);
            }

            Type rh = typeof(IRiddleHandler);

            foreach (Assembly a in assemblies)
            {
                Type[] types = a.GetTypes();
                foreach (Type t in types)
                {
                    if (t.IsAbstract || t.IsNotPublic || !rh.IsAssignableFrom(t))
                    {
                        continue;
                    }
                    // create as instance
                    object         iRiddle = a.CreateInstance(t.ToString());
                    IRiddleHandler riddle  = iRiddle as IRiddleHandler;
                    if (riddle != null)
                    {
                        riddles.Add(riddle);
                    }
                }
            }

            return(riddles);
        }
Example #6
0
        private void LoadClick(object sender, RoutedEventArgs e)
        {
            Assembly   assem  = Assembly.GetExecutingAssembly();
            Uri        ur     = new Uri(assem.CodeBase);
            FileInfo   fi     = new FileInfo(ur.AbsolutePath);
            string     s      = fi.Directory.FullName + "TestBook.book";
            Stream     stream = new FileStream(s, FileMode.Open, FileAccess.Read);
            IFormatter f      = new BinaryFormatter();

            while (stream.Position < stream.Length)
            {
                String name;
                name = f.Deserialize(stream) as String;
                IRiddleHandler h = Handlers.Find(x => x.Name == name);
                h.Load(stream);
            }
            stream.Close();
            MessageBox.Show($"Load succesfull to {s}");
            RefreshAll();
        }