comparison m-toolbox/m/etc/ltpda_startup.m @ 0:f0afece42f48

Import.
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Wed, 23 Nov 2011 19:22:13 +0100
parents
children ce4df2e95a55
comparison
equal deleted inserted replaced
-1:000000000000 0:f0afece42f48
1 % This is the startup file for ltpda. It should be run once in the MATLAB
2 % session before using any features of ltpda. The best way to ensure this
3 % is to create a file called startup.m and put this somewhere in your
4 % MATLAB path. In this file you should have the command 'ltpda_startup'.
5 %
6 % M Hewitson 16-03-07
7 %
8 % $Id: ltpda_startup.m,v 1.94 2011/07/05 06:25:21 mauro Exp $
9 %
10 function ltpda_startup
11
12 % For the case that the user calls 'ltpda_startup' in his current MATLAB
13 % session again it is necessary to destroy ALL java objects.
14 setappdata(0, 'LTPDApreferences', []);
15
16 % Remove the repository manager
17 rm = getappdata(0, 'LTPDARepositoryManager');
18 if ~isempty(rm)
19 delete(rm);
20 end
21 setappdata(0, 'LTPDARepositoryManager', []);
22
23 clear java
24 clear classes
25
26 %--------------------------------------------------------------------------
27 % If the mex files of LTPDA are not working on your system, you can
28 % recompile them by setting this flag to 1 then run ltpda_startup. After
29 % compilation, set it back to 0.
30 %
31 % This is often required on Linux machines due to the difficulties of
32 % distributing mex files on Linux.
33 COMPILE_MEX = 0;
34
35 %-----------------------------------------------------------------------
36 % Decide if using or not the LTPDA print and plot settings
37 USE_LTPDA_PLOT = false;
38 USE_LTPDA_PRINT = false;
39
40 %--------------------------------------------------------------------------
41 %--------------------------------------------------------------------------
42 %--------------------------------------------------------------------------
43 %--------------------------------------------------------------------------
44 %--------------------------------------------------------------------------
45 %--------------------------------------------------------------------------
46 %--------------------------------------------------------------------------
47 %--------------------------------------------------------------------------
48 %--------------------------------------------------------------------------
49 %--------------------------------------------------------------------------
50 %--------------------------------------------------------------------------
51 %--------------------------------------------------------------------------
52 %--------------------------------------------------------------------------
53 %--------------------------------------------------------------------------
54 %--------------------------------------------------------------------------
55 %--------------------------------------------------------------------------
56 %--------------------------------------------------------------------------
57 %--------------------------------------------------------------------------
58 %--------------------------------------------------------------------------
59 %--------------------------------------------------------------------------
60 %--------------------------------------------------------------------------
61 %--------------------------------------------------------------------------
62 %--------------------------------------------------------------------------
63 %--------------------------------------------------------------------------
64 %--------------------------------------------------------------------------
65 %--------------------------------------------------------------------------
66 %--------------------------------------------------------------------------
67 %--------------------------------------------------------------------------
68
69
70 %--------------------------------------------------------------------------
71 %--------------------------------------------------------------------------
72 % NO NEED TO EDIT BELOW HERE
73 %--------------------------------------------------------------------------
74 %--------------------------------------------------------------------------
75
76 v = ver('LTPDA');
77
78 %--------------------------------------------------------------------------
79 % format of numbers on MATLAB terminal
80 format long g
81
82 % ------------------------------------------------------------------------
83 % MySQL LTPDA Repository Server Settings
84 %
85
86 DBDRIVER = 'com.mysql.jdbc.Driver'; % Set LTPDA Repository database driver
87
88 %------------------------------------------------------------------------
89 % JAVA extensions
90
91
92
93 % Add all jar files in 'ltpda_toolbox/ltpda/jar' to path
94 jardir = fullfile(fileparts(which('ltpda_startup')), '..', '..', 'jar');
95 jars = dir(jardir);
96 for c = 1:numel(jars)
97 s = jars(c);
98 [path, name, ext] = fileparts(s.name);
99 if strcmp(ext, '.jar')
100 javaaddpath(fullfile(jardir, s.name));
101 end
102 end
103 % Add all jar files in 'ltpda_toolbox/ltpda/jar/lib' to path
104 jardir = fullfile(fileparts(which('ltpda_startup')), '..', '..', 'jar', 'lib');
105 jars = dir(jardir);
106 for c = 1:numel(jars)
107 s = jars(c);
108 [path, name, ext] = fileparts(s.name);
109 if strcmp(ext, '.jar')
110 javaaddpath(fullfile(jardir, s.name));
111 end
112 end
113
114 % Add all jar files in extension modules to path
115 installExtensionJarFiles;
116
117 % ------------------------------------------------------------------------
118 % General Variables
119 setappdata(0, 'xmlsetsize', 50000); % Max size of an xml data set <Set></Set>
120
121 setappdata(0, 'ltpda_default_plot_colors', { ...
122 [0 0 1], ... % 'b'
123 [1 0 0], ... % 'r'
124 [0 1 0], ... % 'g'
125 [0 0 0], ... % 'k'
126 [0 1 1], ... % 'c'
127 [1 0 1], ... % 'm'
128 [0.565 0.247 0.667], ... % pink
129 [0.722 0.420 0.274], ... % siena
130 [0.659 0.541 0.000], ... % ocra
131 [1 0.604 0.208], ... % orange
132 [0.502 0.502 0.502], ... % dark grey
133 [0.733 0.824 0.082], ... % ill green
134 [0.318 0.557 0.675], ... % cobalto
135 [0.8 0.2 0.2], ...
136 [0.2 0.2 0.8], ...
137 [0.2 0.9 0.2], ...
138 [0.37 0.9 0.83], ...
139 [0.888 0.163 0.9], ...
140 [0 0 0], ...
141 [0 207 255]/255, ...
142 [255 128 0]/255, ...
143 [143 0 0]/255, ...
144 [255 207 0]/255, ...
145 [0.9 0.266 0.593]});
146
147 % ------------------------------------------------------------------------
148 % Version Variables
149
150 NOT_INSTALLED = 'Not installed';
151 matlab_version = NOT_INSTALLED;
152 sigproc_version = NOT_INSTALLED;
153 symbolic_math_version = NOT_INSTALLED;
154 optimization_version = NOT_INSTALLED;
155 database_version = NOT_INSTALLED;
156 control_version = NOT_INSTALLED;
157 statistics_version = NOT_INSTALLED;
158 ltpda_version = NOT_INSTALLED;
159
160 vs = ver;
161 for jj = 1:length(vs)
162 v = vs(jj);
163 switch v.Name
164 case 'MATLAB'
165 matlab_version = [v.Version ' ' v.Release];
166 case 'Signal Processing Toolbox'
167 sigproc_version = [v.Version ' ' v.Release];
168 case 'Symbolic Math Toolbox'
169 symbolic_math_version = [v.Version ' ' v.Release];
170 case 'Optimization Toolbox'
171 optimization_version = [v.Version ' ' v.Release];
172 case 'Database Toolbox'
173 database_version = [v.Version ' ' v.Release];
174 case 'Control System Toolbox'
175 control_version = [v.Version ' ' v.Release];
176 case 'Statistics Toolbox'
177 statistics_version = [v.Version ' ' v.Release];
178 case 'LTPDA Toolbox'
179 ltpda_version = [v.Version ' ' v.Release];
180 end
181 end
182
183 setappdata(0, 'matlab_version', matlab_version);
184 setappdata(0, 'sigproc_version', sigproc_version);
185 setappdata(0, 'symbolic_math_version', symbolic_math_version);
186 setappdata(0, 'optimization_version', optimization_version);
187 setappdata(0, 'database_version', database_version);
188 setappdata(0, 'control_version', control_version);
189 setappdata(0, 'statistics_version', statistics_version);
190 setappdata(0, 'ltpda_version', ltpda_version);
191 setappdata(0, 'ltpda_required_matlab_version', '7.6');
192
193 %--------------------------------------------------------------------------
194 % do we need to compile mex files?
195 if COMPILE_MEX
196 currdir = pwd;
197 [path, name, ext, vers] = fileparts(which('ltpda_startup'));
198 parts = regexp(path, 'ltpda/', 'split');
199 cd(fullfile(parts{1}, 'ltpda', 'src'));
200 compileAll;
201 cd(currdir);
202 end
203
204 %--------------------------------------------------------------------------
205 % Start matlab pool if parallel toolbox is installed
206 if exist('parfor', 'builtin')==5 && exist('matlabpool','file')==2
207 % try
208 % matlabpool open 2
209 % end
210 end
211
212 % -------------------------------------------------------------------------
213 % import some things
214
215 import utils.const.*
216
217 % -------------------------------------------------------------------------
218 % Launch some things
219
220 % ltpdalauncher;
221
222
223
224
225 %--------------------------------------------------------------------------
226 % Check and load user parameters
227 %
228 loadPrefs;
229
230
231 %--------------------------------------------------------------------------
232 % set page properties for printing
233 if USE_LTPDA_PRINT
234 set(0, 'DefaultFigurePaperOrientation','landscape');
235 set(0, 'DefaultFigurePaperType','A4');
236 set(0, 'DefaultFigurePaperUnits', 'centimeters');
237 set(0, 'DefaultFigurePaperPositionMode', 'manual');
238 set(0, 'DefaultFigurePaperPosition', [3.56 2.03 22.56 16.92]);
239 end
240
241 % ------------------------------------------------------------------------
242 % Backup MATLAB's plot settings
243 utils.plottools.backupDefaultPlotSettings();
244
245 %--------------------------------------------------------------------------
246 % Plot settings
247 if USE_LTPDA_PLOT
248 set(0, 'DefaultAxesXColor', [0 0 0]);
249 set(0, 'DefaultAxesYColor', [0 0 0]);
250 set(0, 'defaultfigurenumbertitle', 'on');
251 set(0, 'DefaultFigureColor', 'w');
252 set(0, 'DefaultFigurePosition', [0 0 1200 700]);
253 set(0, 'DefaultAxesPosition', [0.13 0.15 0.775 0.75]);
254 end
255
256 % Add user model paths
257 prefs = getappdata(0, 'LTPDApreferences');
258 searchPaths = prefs.getModelsPrefs.getSearchPaths;
259 for jj = 1:searchPaths.size()
260 addpath(genpath(char(searchPaths.get(jj-1))));
261 end
262
263 % Install extensions
264 utils.helper.installExtensions;
265
266 %--------------------------------------------------------------------------
267 % Activate correct helptoc.xml file (depending on MATLAB version)
268
269 % Define MATLAB helptoc version
270 matlabRelease = version('-release');
271 switch matlabRelease
272 case {'2008a', '2008b', '2009a'}
273 matlabRelease = 'R2009a';
274 case '2009b'
275 matlabRelease = 'R2009b';
276 case '2010a'
277 matlabRelease = 'R2010a';
278 otherwise
279 matlabRelease = 'R2010a';
280 end
281
282 % Get info.xml path
283 infoPath = which('info.xml');
284 [infoLocation, infoName, infoExt] = fileparts(infoPath);
285
286 % read info.xml file in order to get the helptoc.xml path
287 infoXML = xmlread('info.xml');
288 tbNameNode = infoXML.getElementsByTagName('name');
289 tbName = tbNameNode.item(0).getFirstChild.getData;
290 if strcmp(tbName, 'LTPDA')
291 helpLocationNodes = infoXML.getElementsByTagName('help_location');
292 helpLocation = char(helpLocationNodes.item(0).getFirstChild.getTextContent);
293 else % Otherwise error out
294 error('Can not find info.xml file for My Toolbox');
295 end
296
297 helptocLocation = fullfile(infoLocation, helpLocation);
298
299 helptocSource = fullfile(helptocLocation, strcat('helptoc', matlabRelease, '.xml'));
300 helptocDest = fullfile(helptocLocation, 'helptoc.xml');
301
302 copyfile(helptocSource, helptocDest);
303
304 % Set LTPDA Root dir
305 ltpdaroot = strrep(which('ao'), fullfile('ltpda', 'classes', '@ao', 'ao.m'), '');
306 setappdata(0, 'LTPDAROOT', ltpdaroot);
307
308
309 % Show logo
310 showLogo();
311
312 % Now we need to clear in order to register the newly install class
313 % methods coming from the extensions
314 mc;
315
316 % ---- Start Repository Manager
317 LTPDARepositoryManager;
318
319 end
320
321 function installExtensionJarFiles
322 % We'll need to get all the users extension modules to look for jar
323 % files.
324 v = ver('LTPDA');
325 nv = utils.helper.ver2num(v(1).Version);
326 prefs = mpipeline.ltpdapreferences.LTPDAPreferences.loadFromDisk(LTPDAprefs.preffile, nv);
327 jextPaths = prefs.getExtensionsPrefs.getSearchPaths;
328 setappdata(0, 'LTPDApreferences', []);
329 clear prefs;
330
331 extPaths = [];
332 for kk=0:jextPaths.size-1
333 extPaths = [extPaths {char(jextPaths.get(kk))}];
334 end
335 clear jextPaths;
336
337 for kk=1:numel(extPaths)
338 p = extPaths{kk};
339 files = dir(fullfile(p, 'jar'));
340 for ff=1:numel(files)
341 f = files(ff);
342 [path, name, ext] = fileparts(f.name);
343 if strcmp(ext, '.jar')
344 javaaddpath(fullfile(p, 'jar', f.name));
345 end
346 end
347 end
348 end
349
350
351 function loadPrefs
352 if exist(LTPDAprefs.preffile, 'file') == 2
353
354 % we just go ahead
355 LTPDAprefs.loadPrefs;
356
357 else
358
359 % Check for old prefs file
360 if exist(LTPDAprefs.oldpreffile, 'file') == 2
361
362 % load it
363 pl = plist(LTPDAprefs.oldpreffile);
364
365 % Now make a new preferences file
366 LTPDAprefs.loadPrefs;
367 prefs = getappdata(0, 'LTPDApreferences');
368 prefs = LTPDAprefs.upgradeFromPlist(prefs, pl);
369
370 prefs.writeToDisk;
371
372 else
373
374 % Copy the default preferences file to MATLAB's preference directory.
375 defPrefsFile = fullfile(fileparts(which('ltpda_startup')), 'ltpda_prefs2.xml');
376 copyfile(defPrefsFile, prefdir() );
377
378 % Build the default prefs
379 LTPDAprefs.loadPrefs;
380
381 % Show a GUI to allow the user to edit the prefs for the first time
382 LTPDAprefs;
383
384 end
385 end
386 end
387
388 function showLogo()
389
390 v = ver('LTPDA');
391
392 logo = {...
393 ' ',...
394 ' **** ',...
395 ' ** ',...
396 ' ------------- ',...
397 ' //// / \\\\ ',...
398 ' /// / \\\ ',...
399 ' | / | ',...
400 ' ** | +----+ / +----+ | ** ',...
401 ' ***| | |//-------| | |*** ',...
402 ' ** | +----+ /+----+ | ** ',...
403 ' | / | ',...
404 ' \\\ / /// ',...
405 ' \\\\ // //// ',...
406 ' ------------- ',...
407 ' ** ',...
408 ' **** ',...
409 };
410
411 l1 = '+----------------------------------------------------+';
412 ll = length(l1);
413
414 disp(l1);
415 disp('| |')
416 for jj = 1:length(logo)
417 disp([utils.prog.strpad(sprintf('| %s ', char(logo{jj})), ll-1) '|']);
418 end
419 disp([utils.prog.strpad('|', ll-1) '|'])
420 disp([utils.prog.strpad(sprintf('| Welcome to the %s', v.Name), ll-1) '|'])
421 disp([utils.prog.strpad('|', ll-1) '|'])
422 disp([utils.prog.strpad(sprintf('| Version: %s', v.Version), ll-1) '|'])
423 disp([utils.prog.strpad(sprintf('| Release: %s', v.Release), ll-1) '|'])
424 disp([utils.prog.strpad(sprintf('| Date: %s', v.Date), ll-1) '|'])
425 disp([utils.prog.strpad('|', ll-1) '|'])
426 disp(l1);
427
428 end
429
430
431 % END