source: trunk/CrypPlugins/P2PEditor/P2PEditor.cs @ 2426

Last change on this file since 2426 was 2426, checked in by sauer, 11 years ago

Wizard: sample input

File size: 7.5 KB
Line 
1/*
2   Copyright 2010 Paul Lelgemann, University of Duisburg-Essen
3
4   Licensed under the Apache License, Version 2.0 (the "License");
5   you may not use this file except in compliance with the License.
6   You may obtain a copy of the License at
7
8       http://www.apache.org/licenses/LICENSE-2.0
9
10   Unless required by applicable law or agreed to in writing, software
11   distributed under the License is distributed on an "AS IS" BASIS,
12   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   See the License for the specific language governing permissions and
14   limitations under the License.
15*/
16
17using System;
18using System.Collections.Generic;
19using System.ComponentModel;
20using System.Windows.Controls;
21using Cryptool.Core;
22using Cryptool.P2P;
23using Cryptool.P2PEditor.Distributed;
24using Cryptool.P2PEditor.GUI;
25using Cryptool.PluginBase;
26using Cryptool.PluginBase.Editor;
27
28namespace Cryptool.P2PEditor
29{
30    [EditorInfo("p2p")]
31    [Author("Paul Lelgemann", "lelgemann@cryptool.org", "Uni Duisburg-Essen", "http://www.uni-due.de")]
32    [PluginInfo("Cryptool.P2PEditor.Resources.Attributes", false, "P2P Interface",
33        "Control interface for the integrated P2P network.", null,
34        "P2PEditor/images/icon.png")]
35    public class P2PEditor : IEditor
36    {
37        private readonly JobListManager jobListManager;
38
39        private bool initialNewEventHandled;
40
41        public P2PEditor()
42        {
43            jobListManager = new JobListManager(this);
44            initialNewEventHandled = false;
45
46            Presentation = new P2PEditorPresentation(this, jobListManager);
47            Settings = new P2PEditorSettings(this);
48        }
49
50        #region IEditor Members
51
52        public event SelectedPluginChangedHandler OnSelectedPluginChanged;
53
54        public event ProjectTitleChangedHandler OnProjectTitleChanged;
55
56        public event OpenProjectFileHandler OnOpenProjectFile;
57
58        public event EditorSpecificPluginsChanged OnEditorSpecificPluginsChanged;
59
60        public void New()
61        {
62            if (OnSelectedPluginChanged != null)
63                OnSelectedPluginChanged(this, new PluginChangedEventArgs(this, "P2P Configuration", DisplayPluginMode.Normal));
64           
65            if (!P2PManager.IsConnected)
66            {
67                //GuiLogMessage("Cannot display new job form, no connection to p2p network.", NotificationLevel.Warning);
68                return;
69            }
70
71            // Avoid switching to the add view, but allow using the new button later
72            if (!initialNewEventHandled)
73                initialNewEventHandled = true;
74            else
75                ((P2PEditorPresentation) Presentation).ShowJobCreationView();
76        }
77
78        public void Open(string fileName)
79        {
80            GuiLogMessage("P2PEditor: Open(" + fileName + ")", NotificationLevel.Debug);
81        }
82
83        public void Save(string fileName)
84        {
85            GuiLogMessage("P2PEditor: Save(" + fileName + ")", NotificationLevel.Debug);
86        }
87
88        public void Add(Type type)
89        {
90            GuiLogMessage("P2PEditor: Add(" + type + ")", NotificationLevel.Debug);
91        }
92
93        public void AddEditorSpecific(EditorSpecificPluginInfo espi)
94        {
95            GuiLogMessage("P2PEditor: AddEditorSpecific()", NotificationLevel.Debug);
96        }
97
98        public void DeleteEditorSpecific(EditorSpecificPluginInfo espi)
99        {
100            GuiLogMessage("P2PEditor: DeleteEditorSpecific()", NotificationLevel.Debug);
101        }
102
103        public void Undo()
104        {
105            GuiLogMessage("P2PEditor: Undo()", NotificationLevel.Debug);
106        }
107
108        public void Redo()
109        {
110            GuiLogMessage("P2PEditor: Redo()", NotificationLevel.Debug);
111        }
112
113        public void Cut()
114        {
115            throw new NotImplementedException();
116        }
117
118        public void Copy()
119        {
120            throw new NotImplementedException();
121        }
122
123        public void Paste()
124        {
125            throw new NotImplementedException();
126        }
127
128        public void Remove()
129        {
130            throw new NotImplementedException();
131        }
132
133        public void Print()
134        {
135            throw new NotImplementedException();
136        }
137
138        public void ShowHelp()
139        {
140            ((P2PEditorPresentation) Presentation).ShowHelp();
141        }
142
143        public void ShowSelectedPluginDescription()
144        {
145            ((P2PEditorPresentation) Presentation).ShowHelp();
146        }
147
148        public bool CanUndo
149        {
150            get { return false; }
151        }
152
153        public bool CanRedo
154        {
155            get { return false; }
156        }
157
158        public bool CanCut
159        {
160            get { return false; }
161        }
162
163        public bool CanCopy
164        {
165            get { return false; }
166        }
167
168        public bool CanPaste
169        {
170            get { return false; }
171        }
172
173        public bool CanRemove
174        {
175            get { return false; }
176        }
177
178        public bool CanExecute
179        {
180            get { return false; }
181        }
182
183        public bool CanStop
184        {
185            get { return false; }
186        }
187
188        public bool HasChanges
189        {
190            get { return false; }
191        }
192
193        public bool CanPrint
194        {
195            get { return false; }
196        }
197
198        public string SamplesDir
199        {
200            set {  }
201        }
202
203        public List<EditorSpecificPluginInfo> EditorSpecificPlugins
204        {
205            get { return new List<EditorSpecificPluginInfo>(); }
206        }
207
208        public bool ReadOnly { get; set; }
209
210        public event StatusChangedEventHandler OnPluginStatusChanged;
211
212        public event GuiLogNotificationEventHandler OnGuiLogNotificationOccured;
213
214        public event PluginProgressChangedEventHandler OnPluginProgressChanged;
215
216        public ISettings Settings { get; private set; }
217
218        public UserControl Presentation { get; private set; }
219
220        public UserControl QuickWatchPresentation
221        {
222            get { throw new NotImplementedException(); }
223        }
224
225        public void PreExecution()
226        {
227        }
228
229        public void Execute()
230        {
231        }
232
233        public void PostExecution()
234        {
235        }
236
237        public void Pause()
238        {
239        }
240
241        public void Stop()
242        {
243        }
244
245        public void Initialize()
246        {
247            ((P2PEditorSettings)Settings).UpdateSettings();
248        }
249
250        public void Dispose()
251        {
252        }
253
254        public event PropertyChangedEventHandler PropertyChanged;
255
256        public PluginManager PluginManager { get; set; }
257
258        #endregion
259
260        public void GuiLogMessage(string message, NotificationLevel notificationLevel)
261        {
262            if (OnGuiLogNotificationOccured == null) return;
263
264            var args = new GuiLogEventArgs(message, this, notificationLevel) {Title = "-"};
265            OnGuiLogNotificationOccured(this, args);
266        }
267
268        public void SendOpenProjectFileEvent(string filename)
269        {
270            if (OnOpenProjectFile != null) OnOpenProjectFile(this, filename);
271        }
272
273        #region IEditor Members
274
275
276        public void Active()
277        {           
278        }
279
280        #endregion
281
282        #region IEditor Members
283
284
285        public event OpenTabHandler OnOpenTab;
286
287        #endregion
288    }
289}
Note: See TracBrowser for help on using the repository browser.