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

Last change on this file since 2168 was 2168, checked in by Sven Rech, 11 years ago

added print button

File size: 6.8 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 ChangeDisplayLevelHandler OnChangeDisplayLevel;
53
54        public event SelectedPluginChangedHandler OnSelectedPluginChanged;
55
56        public event ProjectTitleChangedHandler OnProjectTitleChanged;
57
58        public event OpenProjectFileHandler OnOpenProjectFile;
59
60        public event EditorSpecificPluginsChanged OnEditorSpecificPluginsChanged;
61
62        public void New()
63        {
64            if (OnSelectedPluginChanged != null)
65                OnSelectedPluginChanged(this, new PluginChangedEventArgs(this, "P2P Configuration", DisplayPluginMode.Normal));
66           
67            if (!P2PManager.IsConnected)
68            {
69                GuiLogMessage("Cannot display new job form, no connection to p2p network.", NotificationLevel.Warning);
70                return;
71            }
72
73            // Avoid switching to the add view, but allow using the new button later
74            if (!initialNewEventHandled)
75                initialNewEventHandled = true;
76            else
77                ((P2PEditorPresentation) Presentation).ShowJobCreation();
78        }
79
80        public void Open(string fileName)
81        {
82            GuiLogMessage("P2PEditor: Open(" + fileName + ")", NotificationLevel.Debug);
83        }
84
85        public void Save(string fileName)
86        {
87            GuiLogMessage("P2PEditor: Save(" + fileName + ")", NotificationLevel.Debug);
88        }
89
90        public void Add(Type type)
91        {
92            GuiLogMessage("P2PEditor: Add(" + type + ")", NotificationLevel.Debug);
93        }
94
95        public void AddEditorSpecific(EditorSpecificPluginInfo espi)
96        {
97            GuiLogMessage("P2PEditor: AddEditorSpecific()", NotificationLevel.Debug);
98        }
99
100        public void DeleteEditorSpecific(EditorSpecificPluginInfo espi)
101        {
102            GuiLogMessage("P2PEditor: DeleteEditorSpecific()", NotificationLevel.Debug);
103        }
104
105        public void Undo()
106        {
107            GuiLogMessage("P2PEditor: Undo()", NotificationLevel.Debug);
108        }
109
110        public void Redo()
111        {
112            GuiLogMessage("P2PEditor: Redo()", NotificationLevel.Debug);
113        }
114
115        public void Print()
116        {
117            throw new NotImplementedException();
118        }
119
120        public void ShowHelp()
121        {
122            ((P2PEditorPresentation) Presentation).ShowHelp();
123        }
124
125        public void ShowSelectedPluginDescription()
126        {
127            ((P2PEditorPresentation) Presentation).ShowHelp();
128        }
129
130        public bool CanUndo
131        {
132            get { return false; }
133        }
134
135        public bool CanRedo
136        {
137            get { return false; }
138        }
139
140        public bool CanExecute
141        {
142            get { return false; }
143        }
144
145        public bool CanStop
146        {
147            get { return false; }
148        }
149
150        public bool HasChanges
151        {
152            get { return false; }
153        }
154
155        public bool CanPrint
156        {
157            get { return false; }
158        }
159
160        public DisplayLevel DisplayLevel { get; set; }
161
162        public List<EditorSpecificPluginInfo> EditorSpecificPlugins
163        {
164            get { return new List<EditorSpecificPluginInfo>(); }
165        }
166
167        public bool ReadOnly { get; set; }
168
169        public event StatusChangedEventHandler OnPluginStatusChanged;
170
171        public event GuiLogNotificationEventHandler OnGuiLogNotificationOccured;
172
173        public event PluginProgressChangedEventHandler OnPluginProgressChanged;
174
175        public ISettings Settings { get; private set; }
176
177        public UserControl Presentation { get; private set; }
178
179        public UserControl QuickWatchPresentation
180        {
181            get { throw new NotImplementedException(); }
182        }
183
184        public void PreExecution()
185        {
186        }
187
188        public void Execute()
189        {
190        }
191
192        public void PostExecution()
193        {
194        }
195
196        public void Pause()
197        {
198        }
199
200        public void Stop()
201        {
202        }
203
204        public void Initialize()
205        {
206            ((P2PEditorSettings)Settings).UpdateSettings();
207        }
208
209        public void Dispose()
210        {
211        }
212
213        public event PropertyChangedEventHandler PropertyChanged;
214
215        public PluginManager PluginManager { get; set; }
216
217        #endregion
218
219        public void GuiLogMessage(string message, NotificationLevel notificationLevel)
220        {
221            if (OnGuiLogNotificationOccured == null) return;
222
223            var args = new GuiLogEventArgs(message, this, notificationLevel) {Title = "-"};
224            OnGuiLogNotificationOccured(this, args);
225        }
226
227        public void SendOpenProjectFileEvent(string filename)
228        {
229            if (OnOpenProjectFile != null) OnOpenProjectFile(this, filename);
230        }
231
232        #region IEditor Members
233
234
235        public void Active()
236        {           
237        }
238
239        #endregion
240
241        #region IEditor Members
242
243
244        public event OpenTabHandler OnOpenTab;
245
246        #endregion
247    }
248}
Note: See TracBrowser for help on using the repository browser.