Version.cpp 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071
  1. #include "Version.h"
  2. #include <Datei.h>
  3. #include <Zeit.h>
  4. #include <iostream>
  5. // Inhalt der Version Klasse aus Version.h
  6. // Konstruktor
  7. Version::Version(Schrift* s, MSKlient* msc, RessourceBild* rb, AdminAccount* acc, Bildschirm* b)
  8. : Abschnitt(b)
  9. {
  10. fenster = 0;
  11. this->msc = msc;
  12. account = acc;
  13. schrift = s;
  14. psc = 0;
  15. Array< ServerData* > list;
  16. if (msc->getPatchServerListe(&list))
  17. {
  18. int anz = list.getEintragAnzahl();
  19. for (int i = 0; i < anz; i++)
  20. {
  21. ServerData* server = list.get(i);
  22. if (!psc)
  23. {
  24. psc = new PSKlient(server->ip, server->adminPort);
  25. if (!psc->verbinden())
  26. psc = (PSKlient*)psc->release();
  27. }
  28. delete server;
  29. }
  30. }
  31. if (!psc)
  32. WMessageBox(0, new Text("Warnung"), new Text("Es wurde kein erreichbarer Patch Server gefunden. Es kann keine neue Version des Clients veröffentlicht werden."), MB_ICONERROR);
  33. else
  34. psc->login(acc->zName()->getText(), acc->zPasswort()->getText());
  35. f = new Fenster();
  36. f->setStyle(Fenster::Style::Sichtbar | Fenster::Style::Erlaubt | Fenster::Style::Rahmen | Fenster::Style::Titel | Fenster::Style::TitelBuffered);
  37. f->setRFarbe(0xFFFFFFFF);
  38. f->setRBreite(1);
  39. f->setTitel("Version");
  40. f->setTSchriftZ(s ? dynamic_cast<Schrift*>(s->getThis()) : 0);
  41. f->setTSFarbe(0xFFFFFFFF);
  42. f->setTSSize(12);
  43. f->setTAfFarbe(0x1000FF00);
  44. f->setTAfStrength(-15);
  45. f->setTRFarbe(0xFFFFFFFF);
  46. f->setTRBreite(1);
  47. f->zTTextFeld()->addStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Center | TextFeld::Style::Rahmen);
  48. f->zTTextFeld()->setSize(0, 20);
  49. f->setSize(700, 700);
  50. gruppeF = new Fenster();
  51. gruppeF->setStyle(Fenster::Style::Sichtbar | Fenster::Style::Erlaubt);
  52. gruppeF->setSize(680, 640);
  53. gruppeF->setPosition(10, 10);
  54. f->addMember(dynamic_cast<Zeichnung*>(gruppeF->getThis()));
  55. gruppeT = new ObjTabelle();
  56. gruppeT->setStyle(ObjTabelle::Style::Sichtbar | ObjTabelle::Style::Erlaubt | ObjTabelle::Style::Rahmen | ObjTabelle::Style::VScroll);
  57. gruppeT->setVertikalKlickScroll(10);
  58. gruppeT->setMausEreignis(_ret1ME);
  59. gruppeT->setRahmenFarbe(0xFFFFFFFF);
  60. gruppeT->setSize(680, 600);
  61. gruppeT->addSpalte("Name");
  62. gruppeT->addSpalte("Pfad");
  63. gruppeT->addSpalte("Version");
  64. gruppeT->addSpalte("Auswahl");
  65. gruppeT->setSpaltenBreite(0, 285);
  66. gruppeT->setSpaltenBreite(1, 285);
  67. gruppeT->setSpaltenBreite(2, 68);
  68. gruppeT->setSpaltenBreite(3, 22);
  69. gruppeT->addZeile("Titel");
  70. gruppeT->setZeilenHeight(0, 20);
  71. TextFeld* gTN = new TextFeld();
  72. gTN->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center);
  73. gTN->setSchriftZ(s ? dynamic_cast<Schrift*>(s->getThis()) : 0);
  74. gTN->setSchriftFarbe(0xFFFFFFFF);
  75. gTN->setSchriftSize(12);
  76. gTN->setRahmenFarbe(0xFFFFFFFF);
  77. gTN->setText("Name");
  78. gruppeT->setZeichnungZ(0, 0, gTN);
  79. TextFeld* gTP = new TextFeld();
  80. gTP->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center);
  81. gTP->setSchriftZ(s ? dynamic_cast<Schrift*>(s->getThis()) : 0);
  82. gTP->setSchriftFarbe(0xFFFFFFFF);
  83. gTP->setSchriftSize(12);
  84. gTP->setRahmenFarbe(0xFFFFFFFF);
  85. gTP->setText("Pfad");
  86. gruppeT->setZeichnungZ(1, 0, gTP);
  87. TextFeld* gTV = new TextFeld();
  88. gTV->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center);
  89. gTV->setSchriftZ(s ? dynamic_cast<Schrift*>(s->getThis()) : 0);
  90. gTV->setSchriftFarbe(0xFFFFFFFF);
  91. gTV->setSchriftSize(12);
  92. gTV->setRahmenFarbe(0xFFFFFFFF);
  93. gTV->setText("Version");
  94. gruppeT->setZeichnungZ(2, 0, gTV);
  95. gruppeT->setMausEreignis(_ret1ME);
  96. gruppeT->setTastaturEreignis(_ret1TE);
  97. gruppeF->addMember(dynamic_cast<Zeichnung*>(gruppeT->getThis()));
  98. neuGruppeName = new TextFeld();
  99. neuGruppeName->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Erlaubt | TextFeld::Style::Rahmen | TextFeld::Style::Buffered | TextFeld::Style::VCenter);
  100. neuGruppeName->setSchriftZ(s ? dynamic_cast<Schrift*>(s->getThis()) : 0);
  101. neuGruppeName->setSchriftFarbe(0xFFFFFFFF);
  102. neuGruppeName->setSchriftSize(12);
  103. neuGruppeName->setRahmenBreite(1);
  104. neuGruppeName->setRahmenFarbe(0xFFFFFFFF);
  105. neuGruppeName->setAlphaFeldFarbe(0x1000FF00);
  106. neuGruppeName->setAlphaFeldStrength(-5);
  107. neuGruppeName->setSize(285, 20);
  108. neuGruppeName->setPosition(40, 610);
  109. neuGruppeName->setMausEreignis(_ret1ME);
  110. neuGruppeName->setTastaturEreignis(_ret1TE);
  111. neuGruppeName->setText("");
  112. gruppeF->addMember(dynamic_cast<Zeichnung*>(neuGruppeName->getThis()));
  113. neuGruppePfad = new TextFeld();
  114. neuGruppePfad->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Erlaubt | TextFeld::Style::Rahmen | TextFeld::Style::Buffered | TextFeld::Style::VCenter);
  115. neuGruppePfad->setSchriftZ(s ? dynamic_cast<Schrift*>(s->getThis()) : 0);
  116. neuGruppePfad->setSchriftFarbe(0xFFFFFFFF);
  117. neuGruppePfad->setSchriftSize(12);
  118. neuGruppePfad->setRahmenBreite(1);
  119. neuGruppePfad->setRahmenFarbe(0xFFFFFFFF);
  120. neuGruppePfad->setAlphaFeldFarbe(0x1000FF00);
  121. neuGruppePfad->setAlphaFeldStrength(-5);
  122. neuGruppePfad->setSize(285, 20);
  123. neuGruppePfad->setPosition(330, 610);
  124. neuGruppePfad->setMausEreignis(_ret1ME);
  125. neuGruppePfad->setTastaturEreignis(_ret1TE);
  126. neuGruppePfad->setText("");
  127. gruppeF->addMember(dynamic_cast<Zeichnung*>(neuGruppePfad->getThis()));
  128. neuGruppeK = new Knopf();
  129. neuGruppeK->setText("");
  130. neuGruppeK->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer);
  131. neuGruppeK->setHintergrundBildZ(rb ? rb->get("neu.png") : 0);
  132. neuGruppeK->setPosition(625, 610);
  133. neuGruppeK->setSize(20, 20);
  134. neuGruppeK->setMausEreignisParameter(this);
  135. neuGruppeK->setMausEreignis(versionNeuGruppeKMausEreignis);
  136. gruppeF->addMember(dynamic_cast<Zeichnung*>(neuGruppeK->getThis()));
  137. systemF = new Fenster();
  138. systemF->setStyle(Fenster::Style::Erlaubt);
  139. systemF->setSize(680, 640);
  140. systemF->setPosition(10, 10);
  141. f->addMember(dynamic_cast<Zeichnung*>(systemF->getThis()));
  142. systemInit = new InitDatei();
  143. systemT = new ObjTabelle();
  144. systemT->setStyle(ObjTabelle::Style::Sichtbar | ObjTabelle::Style::Erlaubt | ObjTabelle::Style::Rahmen | ObjTabelle::Style::VScroll);
  145. systemT->setVertikalKlickScroll(10);
  146. systemT->setMausEreignis(_ret1ME);
  147. systemT->setRahmenFarbe(0xFFFFFFFF);
  148. systemT->setSize(680, 600);
  149. systemT->addSpalte("Name");
  150. systemT->addSpalte("Pfad");
  151. systemT->addSpalte("Auswahl");
  152. systemT->setSpaltenBreite(0, 150);
  153. systemT->setSpaltenBreite(1, 490);
  154. systemT->setSpaltenBreite(2, 22);
  155. systemT->addZeile("Titel");
  156. systemT->setZeilenHeight(0, 20);
  157. TextFeld* sTN = new TextFeld();
  158. sTN->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center);
  159. sTN->setSchriftZ(s ? dynamic_cast<Schrift*>(s->getThis()) : 0);
  160. sTN->setSchriftFarbe(0xFFFFFFFF);
  161. sTN->setSchriftSize(12);
  162. sTN->setRahmenFarbe(0xFFFFFFFF);
  163. sTN->setText("Name");
  164. systemT->setZeichnungZ(0, 0, sTN);
  165. TextFeld* sTP = new TextFeld();
  166. sTP->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center);
  167. sTP->setSchriftZ(s ? dynamic_cast<Schrift*>(s->getThis()) : 0);
  168. sTP->setSchriftFarbe(0xFFFFFFFF);
  169. sTP->setSchriftSize(12);
  170. sTP->setRahmenFarbe(0xFFFFFFFF);
  171. sTP->setText("Pfad");
  172. systemT->setZeichnungZ(1, 0, sTP);
  173. systemT->setMausEreignis(_ret1ME);
  174. systemT->setTastaturEreignis(_ret1TE);
  175. systemF->addMember(dynamic_cast<Zeichnung*>(systemT->getThis()));
  176. neuSystemName = new TextFeld();
  177. neuSystemName->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Erlaubt | TextFeld::Style::Rahmen | TextFeld::Style::Buffered | TextFeld::Style::VCenter);
  178. neuSystemName->setSchriftZ(s ? dynamic_cast<Schrift*>(s->getThis()) : 0);
  179. neuSystemName->setSchriftFarbe(0xFFFFFFFF);
  180. neuSystemName->setSchriftSize(12);
  181. neuSystemName->setRahmenBreite(1);
  182. neuSystemName->setRahmenFarbe(0xFFFFFFFF);
  183. neuSystemName->setAlphaFeldFarbe(0x1000FF00);
  184. neuSystemName->setAlphaFeldStrength(-5);
  185. neuSystemName->setSize(490, 20);
  186. neuSystemName->setPosition(80, 610);
  187. neuSystemName->setMausEreignis(_ret1ME);
  188. neuSystemName->setTastaturEreignis(_ret1TE);
  189. neuSystemName->setText("");
  190. systemF->addMember(dynamic_cast<Zeichnung*>(neuSystemName->getThis()));
  191. neuSystemK = new Knopf();
  192. neuSystemK->setText("");
  193. neuSystemK->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer);
  194. neuSystemK->setHintergrundBildZ(rb ? rb->get("neu.png") : 0);
  195. neuSystemK->setPosition(580, 610);
  196. neuSystemK->setSize(20, 20);
  197. neuSystemK->setMausEreignisParameter(this);
  198. neuSystemK->setMausEreignis(versionNeuSystemKMausEreignis);
  199. systemF->addMember(dynamic_cast<Zeichnung*>(neuSystemK->getThis()));
  200. dateiF = new Fenster();
  201. dateiF->setStyle(Fenster::Style::Erlaubt);
  202. dateiF->setSize(680, 640);
  203. dateiF->setPosition(10, 10);
  204. f->addMember(dynamic_cast<Zeichnung*>(dateiF->getThis()));
  205. dateiT = new ObjTabelle();
  206. dateiT->setStyle(ObjTabelle::Style::Sichtbar | ObjTabelle::Style::Erlaubt | ObjTabelle::Style::Rahmen | ObjTabelle::Style::VScroll);
  207. dateiT->setVertikalKlickScroll(10);
  208. dateiT->setMausEreignis(_ret1ME);
  209. dateiT->setRahmenFarbe(0xFFFFFFFF);
  210. dateiT->setSize(680, 600);
  211. dateiT->addSpalte("Pfad");
  212. dateiT->addSpalte("Version");
  213. dateiT->addSpalte("Status");
  214. dateiT->setSpaltenBreite(0, 510);
  215. dateiT->setSpaltenBreite(1, 50);
  216. dateiT->setSpaltenBreite(2, 100);
  217. dateiT->addZeile("Titel");
  218. dateiT->setZeilenHeight(0, 20);
  219. TextFeld* dTP = new TextFeld();
  220. dTP->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center);
  221. dTP->setSchriftZ(s ? dynamic_cast<Schrift*>(s->getThis()) : 0);
  222. dTP->setSchriftFarbe(0xFFFFFFFF);
  223. dTP->setSchriftSize(12);
  224. dTP->setRahmenFarbe(0xFFFFFFFF);
  225. dTP->setText("Pfad");
  226. dateiT->setZeichnungZ(0, 0, dTP);
  227. TextFeld* dTV = new TextFeld();
  228. dTV->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center);
  229. dTV->setSchriftZ(s ? dynamic_cast<Schrift*>(s->getThis()) : 0);
  230. dTV->setSchriftFarbe(0xFFFFFFFF);
  231. dTV->setSchriftSize(12);
  232. dTV->setRahmenFarbe(0xFFFFFFFF);
  233. dTV->setText("Version");
  234. dateiT->setZeichnungZ(1, 0, dTV);
  235. TextFeld* dTS = new TextFeld();
  236. dTS->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center);
  237. dTS->setSchriftZ(s ? dynamic_cast<Schrift*>(s->getThis()) : 0);
  238. dTS->setSchriftFarbe(0xFFFFFFFF);
  239. dTS->setSchriftSize(12);
  240. dTS->setRahmenFarbe(0xFFFFFFFF);
  241. dTS->setText("Status");
  242. dateiT->setZeichnungZ(2, 0, dTS);
  243. dateiF->addMember(dynamic_cast<Zeichnung*>(dateiT->getThis()));
  244. commit = new Knopf();
  245. commit->setStyle(Knopf::Style::Normal);
  246. commit->setText("Veröffentlichen");
  247. commit->setSchriftZ(s ? dynamic_cast<Schrift*>(s->getThis()) : 0);
  248. commit->setMausEreignisParameter(this);
  249. commit->setMausEreignis(versionCommitMausEreignis);
  250. commit->setSize(100, 20);
  251. commit->setPosition(290, 610);
  252. dateiF->addMember(dynamic_cast<Zeichnung*>(commit->getThis()));
  253. fehlerF = new Fenster();
  254. fehlerF->setStyle(Fenster::Style::Erlaubt);
  255. fehlerF->setSize(680, 640);
  256. fehlerF->setPosition(10, 10);
  257. f->addMember(dynamic_cast<Zeichnung*>(fehlerF->getThis()));
  258. fehlerText = new TextFeld();
  259. fehlerText->setStyle(TextFeld::Style::Text);
  260. fehlerText->setSchriftZ(s ? dynamic_cast<Schrift*>(s->getThis()) : 0);
  261. fehlerText->setSchriftFarbe(0xFFFFFFFF);
  262. fehlerText->setSchriftSize(12);
  263. fehlerText->setText("");
  264. fehlerText->setSize(680, 650);
  265. fehlerF->addMember(dynamic_cast<Zeichnung*>(fehlerText->getThis()));
  266. zurück = new Knopf();
  267. zurück->setText("");
  268. zurück->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer);
  269. zurück->setHintergrundBildZ(rb ? rb->get("zurück.png") : 0);
  270. zurück->setPosition(295, 650);
  271. zurück->setSize(20, 20);
  272. zurück->setMausEreignisParameter(this);
  273. zurück->setMausEreignis(versionZurückMausEreignis);
  274. f->addMember(dynamic_cast<Zeichnung*>(zurück->getThis()));
  275. aktualisieren = new Knopf();
  276. aktualisieren->setText("");
  277. aktualisieren->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer);
  278. aktualisieren->setHintergrundBildZ(rb ? rb->get("neuladen.png") : 0);
  279. aktualisieren->setPosition(325, 650);
  280. aktualisieren->setSize(20, 20);
  281. aktualisieren->setMausEreignisParameter(this);
  282. aktualisieren->setMausEreignis(versionAktualisierenMausEreignis);
  283. f->addMember(dynamic_cast<Zeichnung*>(aktualisieren->getThis()));
  284. speichern = new Knopf();
  285. speichern->setText("");
  286. speichern->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer);
  287. speichern->setHintergrundBildZ(rb ? rb->get("speichern.png") : 0);
  288. speichern->setPosition(355, 650);
  289. speichern->setSize(20, 20);
  290. speichern->setMausEreignisParameter(this);
  291. speichern->setMausEreignis(versionSpeichernMausEreignis);
  292. f->addMember(dynamic_cast<Zeichnung*>(speichern->getThis()));
  293. weiter = new Knopf();
  294. weiter->setText("");
  295. weiter->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::HAlpha | Knopf::Style::KlickBuffer);
  296. weiter->setHintergrundBildZ(rb ? rb->get("weiter.png") : 0);
  297. weiter->setPosition(385, 650);
  298. weiter->setSize(20, 20);
  299. weiter->setMausEreignisParameter(this);
  300. weiter->setMausEreignis(versionWeiterMausEreignis);
  301. f->addMember(dynamic_cast<Zeichnung*>(weiter->getThis()));
  302. sName = new Text("");
  303. system = 0;
  304. if (rb)
  305. rb->release();
  306. }
  307. // Destruktor
  308. Version::~Version()
  309. {
  310. if (fenster)
  311. {
  312. fenster->removeMember(f);
  313. fenster->release();
  314. }
  315. account->release();
  316. msc->release();
  317. if (psc)
  318. psc->release();
  319. f->release();
  320. gruppeF->release();
  321. gruppeT->release();
  322. neuGruppeName->release();
  323. neuGruppePfad->release();
  324. neuGruppeK->release();
  325. systemF->release();
  326. systemInit->release();
  327. systemT->release();
  328. neuSystemName->release();
  329. neuSystemK->release();
  330. speichern->release();
  331. weiter->release();
  332. dateiF->release();
  333. dateiT->release();
  334. commit->release();
  335. aktualisieren->release();
  336. fehlerF->release();
  337. fehlerText->release();
  338. zurück->release();
  339. if (schrift)
  340. schrift->release();
  341. sName->release();
  342. }
  343. // privat
  344. void Version::sucheDateien(const char* pfad, Array< FileInfo >& list)
  345. {
  346. Datei* d = new Datei();
  347. d->setDatei(pfad);
  348. if (d->istOrdner())
  349. {
  350. RCArray< Text >* liste = d->getDateiListe();
  351. int anzahl = d->getUnterdateiAnzahl();
  352. for (int i = 0; i < anzahl; i++)
  353. {
  354. Text* p = new Text(pfad);
  355. p->append("/");
  356. p->append(liste->z(i)->getText());
  357. sucheDateien(p->getText(), list);
  358. p->release();
  359. }
  360. liste->release();
  361. }
  362. d->release();
  363. Text* pf = new Text(pfad);
  364. pf->remove(systemInit->zWert(sName->getText())->getText());
  365. pf->remove(0, 1);
  366. if (!pf->getLength())
  367. {
  368. pf->release();
  369. return;
  370. }
  371. bool gefunden = 0;
  372. int anz = list.getEintragAnzahl();
  373. for (int i = 0; i < anz; i++)
  374. {
  375. if (pf->istGleich(list.get(i).path))
  376. {
  377. gefunden = 1;
  378. break;
  379. }
  380. }
  381. if (!gefunden)
  382. {
  383. dateiT->addZeile("0");
  384. TextFeld* pfad = new TextFeld();
  385. pfad->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::VCenter);
  386. pfad->setSchriftZ(schrift ? dynamic_cast<Schrift*>(schrift->getThis()) : 0);
  387. pfad->setSchriftFarbe(0xFFFFFFFF);
  388. pfad->setSchriftSize(12);
  389. pfad->setRahmenFarbe(0xFFFFFFFF);
  390. pfad->setText(pf->getText());
  391. dateiT->setZeichnungZ(0, dateiT->getZeilenAnzahl() - 1, pfad);
  392. TextFeld* version = new TextFeld();
  393. version->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center);
  394. version->setSchriftZ(schrift ? dynamic_cast<Schrift*>(schrift->getThis()) : 0);
  395. version->setSchriftFarbe(0xFFFFFFFF);
  396. version->setSchriftSize(12);
  397. version->setRahmenFarbe(0xFFFFFFFF);
  398. version->setText("0");
  399. dateiT->setZeichnungZ(1, dateiT->getZeilenAnzahl() - 1, version);
  400. TextFeld* status = new TextFeld();
  401. status->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center);
  402. status->setSchriftZ(schrift ? dynamic_cast<Schrift*>(schrift->getThis()) : 0);
  403. status->setSchriftFarbe(0xFFFFFFFF);
  404. status->setSchriftSize(12);
  405. status->setRahmenFarbe(0xFFFFFFFF);
  406. status->setText("Neu");
  407. dateiT->setZeichnungZ(2, dateiT->getZeilenAnzahl() - 1, status);
  408. }
  409. pf->release();
  410. }
  411. // nicht constant
  412. void Version::setFenster(Fenster* f)
  413. {
  414. if (fenster)
  415. fenster->release();
  416. this->f->setPosition(f->getBreite() / 2 - this->f->getBreite() / 2, f->getHeight() / 2 - this->f->getHeight() / 2);
  417. fenster = f;
  418. }
  419. void Version::setSichtbar(bool s)
  420. {
  421. sichtbar = s;
  422. if (s)
  423. fenster->addMember(dynamic_cast<Zeichnung*>(f->getThis()));
  424. else
  425. fenster->removeMember(f);
  426. }
  427. bool Version::neuGruppeKMausEreignis(void* o, MausEreignis me)
  428. {
  429. if (me.id == ME_RLinks)
  430. {
  431. if (neuGruppeName->zText()->getLength())
  432. {
  433. /*if( !pgDb->neueDateiGruppeErstellen( neuGruppeName->zText()->getText(), neuGruppePfad->zText()->getText() ) )
  434. {
  435. fehlerText->setText( "Es ist ein Fehler aufgetreten. Siehe in den Logdateien nach für nähere\nInformationen." );
  436. gruppeF->removeStyle( Fenster::Style::Sichtbar );
  437. weiter->removeStyle( Knopf::Style::Erlaubt );
  438. zurück->addStyle( Knopf::Style::Erlaubt );
  439. aktualisieren->removeStyle( Knopf::Style::Erlaubt );
  440. speichern->removeStyle( Knopf::Style::Erlaubt );
  441. fehlerF->addStyle( Fenster::Style::Sichtbar );
  442. }
  443. else
  444. {
  445. neuGruppeName->setText( "" );
  446. neuGruppeName->setAuswahl( 0, 0 );
  447. neuGruppePfad->setText( "" );
  448. neuGruppePfad->setAuswahl( 0, 0 );
  449. aktualisierenMausEreignis( 0, me );
  450. }*/
  451. WMessageBox(0, new Text("Warnung"), new Text("Diese Funktion ist momentan nicht implementiert. Nehmen sie die Änderungen manuell in der Datenbank vor."), MB_ICONERROR);
  452. }
  453. }
  454. return 1;
  455. }
  456. bool Version::auswahlKnopfMausEreignis(void* o, MausEreignis me)
  457. {
  458. if (!o)
  459. return 0;
  460. if (me.id == ME_RLinks)
  461. {
  462. if (gruppeF->hatStyle(Fenster::Style::Sichtbar))
  463. {
  464. for (int i = 1; i < gruppeT->getZeilenAnzahl(); i++)
  465. ((KontrollKnopf*)gruppeT->zZeichnung(3, i))->removeStyle(KontrollKnopf::Style::Selected);
  466. weiter->addStyle(Knopf::Style::Erlaubt);
  467. }
  468. else if (systemF->hatStyle(Fenster::Style::Sichtbar))
  469. {
  470. for (int i = 1; i < systemT->getZeilenAnzahl(); i++)
  471. ((KontrollKnopf*)systemT->zZeichnung(2, i))->removeStyle(KontrollKnopf::Style::Selected);
  472. weiter->addStyle(Knopf::Style::Erlaubt);
  473. }
  474. }
  475. return 1;
  476. }
  477. bool Version::neuSystemKMausEreignis(void* o, MausEreignis me)
  478. {
  479. if (me.id == ME_RLinks)
  480. {
  481. if (neuSystemName->zText()->getLength())
  482. {
  483. /*if( !pgDb->neuesSystemErstellen( neuSystemName->zText()->getText() ) )
  484. {
  485. fehlerText->setText( "Es ist ein Fehler aufgetreten. Siehe in den Logdateien nach für nähere\nInformationen." );
  486. systemF->removeStyle( Fenster::Style::Sichtbar );
  487. weiter->removeStyle( Knopf::Style::Erlaubt );
  488. zurück->addStyle( Knopf::Style::Erlaubt );
  489. aktualisieren->removeStyle( Knopf::Style::Erlaubt );
  490. speichern->removeStyle( Knopf::Style::Erlaubt );
  491. fehlerF->addStyle( Fenster::Style::Sichtbar );
  492. }
  493. else
  494. {
  495. neuSystemName->setText( "" );
  496. neuSystemName->setAuswahl( 0, 0 );
  497. aktualisierenMausEreignis( 0, me );
  498. }*/
  499. WMessageBox(0, new Text("Warnung"), new Text("Diese Funktion ist momentan nicht implementiert. Nehmen sie die Änderungen manuell in der Datenbank vor."), MB_ICONERROR);
  500. }
  501. }
  502. return 1;
  503. }
  504. bool Version::speichernMausEreignis(void* o, MausEreignis me)
  505. {
  506. if (me.id == ME_RLinks)
  507. {
  508. systemInit->removeAlle();
  509. for (int i = 1; i < systemT->getZeilenAnzahl(); i++)
  510. {
  511. systemInit->addWert(((TextFeld*)systemT->zZeichnung(0, i))->zText()->getText(),
  512. ((TextFeld*)systemT->zZeichnung(1, i))->zText()->getText());
  513. systemInit->speichern();
  514. }
  515. }
  516. return 1;
  517. }
  518. bool Version::weiterMausEreignis(void* o, MausEreignis me)
  519. {
  520. if (me.id == ME_RLinks)
  521. {
  522. if (gruppeF->hatStyle(Fenster::Style::Sichtbar))
  523. {
  524. for (int i = 1; i < gruppeT->getZeilenAnzahl(); i++)
  525. {
  526. if (((KontrollKnopf*)gruppeT->zZeichnung(3, i))->hatStyle(KontrollKnopf::Style::Selected))
  527. {
  528. gruppe = TextZuInt(gruppeT->zZeilenName(i)->getText(), 10);
  529. Text* pfad = new Text("data/");
  530. pfad->append(((TextFeld*)gruppeT->zZeichnung(0, i))->getText());
  531. pfad->append(".ini");
  532. systemInit->setPfad(pfad);
  533. systemInit->removeAlle();
  534. systemInit->laden();
  535. gruppeF->removeStyle(Fenster::Style::Sichtbar);
  536. systemF->addStyle(Fenster::Style::Sichtbar);
  537. speichern->addStyle(Knopf::Style::Erlaubt);
  538. aktualisieren->addStyle(Knopf::Style::Erlaubt);
  539. weiter->removeStyle(Knopf::Style::Erlaubt);
  540. zurück->addStyle(Knopf::Style::Erlaubt);
  541. aktualisierenMausEreignis(0, me);
  542. return 1;
  543. }
  544. }
  545. }
  546. else if (systemF->hatStyle(Fenster::Style::Sichtbar))
  547. {
  548. for (int i = 1; i < systemT->getZeilenAnzahl(); i++)
  549. {
  550. if (((KontrollKnopf*)systemT->zZeichnung(2, i))->hatStyle(KontrollKnopf::Style::Selected))
  551. {
  552. sName->setText(((TextFeld*)systemT->zZeichnung(0, i))->zText()->getText());
  553. system = TextZuInt(systemT->zZeilenName(i)->getText(), 10);
  554. systemF->removeStyle(Fenster::Style::Sichtbar);
  555. speichern->removeStyle(Knopf::Style::Erlaubt);
  556. aktualisieren->removeStyle(Knopf::Style::Erlaubt);
  557. weiter->removeStyle(Knopf::Style::Erlaubt);
  558. zurück->addStyle(Knopf::Style::Erlaubt);
  559. if (!systemInit->wertExistiert(sName->getText()))
  560. {
  561. fehlerText->setText("Der Pfad wurde für dieses System noch nicht gesetzt.");
  562. fehlerF->addStyle(Fenster::Style::Sichtbar);
  563. return 1;
  564. }
  565. if (!DateiExistiert(systemInit->getWert(sName->getText())) || !DateiIstVerzeichnis(systemInit->getWert(sName->getText())))
  566. {
  567. fehlerText->setText("Unter dem angegebenem Pfad wurde keine Datei gefunden.");
  568. fehlerF->addStyle(Fenster::Style::Sichtbar);
  569. return 1;
  570. }
  571. aktualisieren->addStyle(Knopf::Style::Erlaubt);
  572. dateiF->addStyle(Fenster::Style::Sichtbar);
  573. aktualisierenMausEreignis(0, me);
  574. return 1;
  575. }
  576. }
  577. }
  578. }
  579. return 1;
  580. }
  581. bool Version::commitMausEreignis(void* o, MausEreignis me)
  582. {
  583. if (me.id == ME_RLinks)
  584. {
  585. /*if( !pgDb->adminHatRecht( account->getId(), Admin_Recht::LTCUpdate ) )
  586. {
  587. dateiF->removeStyle( Fenster::Style::Sichtbar );
  588. aktualisieren->removeStyle( Knopf::Style::Erlaubt );
  589. fehlerText->setText( "Du hast keine Berechtigung für diesen Vorgang." );
  590. fehlerF->addStyle( Fenster::Style::Sichtbar );
  591. zurück->addStyle( Knopf::Style::Erlaubt );
  592. return 1;
  593. }
  594. if( pgDb->sindPatchServerOnline() )
  595. {
  596. dateiF->removeStyle( Fenster::Style::Sichtbar );
  597. aktualisieren->removeStyle( Knopf::Style::Erlaubt );
  598. fehlerText->setText( "Es müssen zunächst alle Patchserver herunterfahren." );
  599. fehlerF->addStyle( Fenster::Style::Sichtbar );
  600. zurück->addStyle( Knopf::Style::Erlaubt );
  601. return 1;
  602. }*/
  603. aktualisierenMausEreignis(0, me);
  604. bool gU = 0;
  605. for (int i = 1; i < dateiT->getZeilenAnzahl(); i++)
  606. {
  607. if (((TextFeld*)dateiT->zZeichnung(2, i))->zText()->istGleich("Veraltet"))
  608. { // datei ist Veraltet
  609. Text* pfad = new Text(systemInit->zWert(sName->getText())->getText());
  610. pfad->append("/");
  611. pfad->append(((TextFeld*)dateiT->zZeichnung(0, i))->zText()->getText());
  612. Datei* d = new Datei();
  613. d->setDatei(pfad);
  614. Zeit* zeit = d->getLastChange();
  615. if (!psc || !psc->updateFile(((TextFeld*)dateiT->zZeichnung(0, i))->zText()->getText(), 1, zeit, system, gruppe))
  616. {
  617. dateiF->removeStyle(Fenster::Style::Sichtbar);
  618. aktualisieren->removeStyle(Knopf::Style::Erlaubt);
  619. if (!psc)
  620. fehlerText->setText("Es wurde kein erreichbarer Patch Server gefunden.");
  621. else
  622. fehlerText->setText(psc->getLetzterFehler());
  623. fehlerF->addStyle(Fenster::Style::Sichtbar);
  624. zurück->addStyle(Knopf::Style::Erlaubt);
  625. if (zeit)
  626. zeit->release();
  627. d->release();
  628. return 1;
  629. }
  630. if (zeit)
  631. zeit->release();
  632. d->release();
  633. gU = 1;
  634. }
  635. else if (((TextFeld*)dateiT->zZeichnung(2, i))->zText()->istGleich("Gelöscht"))
  636. { // datei ist Gelöscht
  637. if (!psc || !psc->updateFile(((TextFeld*)dateiT->zZeichnung(0, i))->zText()->getText(), 0, 0, system, gruppe))
  638. {
  639. dateiF->removeStyle(Fenster::Style::Sichtbar);
  640. aktualisieren->removeStyle(Knopf::Style::Erlaubt);
  641. if (!psc)
  642. fehlerText->setText("Es wurde kein erreichbarer Patch Server gefunden.");
  643. else
  644. fehlerText->setText(psc->getLetzterFehler());
  645. fehlerF->addStyle(Fenster::Style::Sichtbar);
  646. zurück->addStyle(Knopf::Style::Erlaubt);
  647. return 1;
  648. }
  649. gU = 1;
  650. }
  651. else if (((TextFeld*)dateiT->zZeichnung(2, i))->zText()->istGleich("Neu"))
  652. { // datei ist Neu
  653. Text* pfad = new Text(systemInit->zWert(sName->getText())->getText());
  654. pfad->append("/");
  655. pfad->append(((TextFeld*)dateiT->zZeichnung(0, i))->zText()->getText());
  656. Datei* d = new Datei();
  657. d->setDatei(pfad);
  658. Zeit* zeit = d->getLastChange();
  659. if (!psc || !psc->updateFile(((TextFeld*)dateiT->zZeichnung(0, i))->zText()->getText(), 2, zeit, system, gruppe))
  660. {
  661. dateiF->removeStyle(Fenster::Style::Sichtbar);
  662. aktualisieren->removeStyle(Knopf::Style::Erlaubt);
  663. if (!psc)
  664. fehlerText->setText("Es wurde kein erreichbarer Patch Server gefunden.");
  665. else
  666. fehlerText->setText(psc->getLetzterFehler());
  667. fehlerF->addStyle(Fenster::Style::Sichtbar);
  668. zurück->addStyle(Knopf::Style::Erlaubt);
  669. if (zeit)
  670. zeit->release();
  671. d->release();
  672. return 1;
  673. }
  674. if (zeit)
  675. zeit->release();
  676. d->release();
  677. gU = 1;
  678. }
  679. }
  680. if (gU)
  681. {
  682. if (!psc || !psc->dateiGruppeUpdate(gruppe))
  683. {
  684. dateiF->removeStyle(Fenster::Style::Sichtbar);
  685. aktualisieren->removeStyle(Knopf::Style::Erlaubt);
  686. if (!psc)
  687. fehlerText->setText("Es wurde kein erreichbarer Patch Server gefunden.");
  688. else
  689. fehlerText->setText(psc->getLetzterFehler());
  690. fehlerF->addStyle(Fenster::Style::Sichtbar);
  691. zurück->addStyle(Knopf::Style::Erlaubt);
  692. return 1;
  693. }
  694. }
  695. aktualisierenMausEreignis(0, me);
  696. }
  697. return 1;
  698. }
  699. bool Version::aktualisierenMausEreignis(void* o, MausEreignis me)
  700. {
  701. if (me.id == ME_RLinks)
  702. {
  703. if (gruppeF->hatStyle(Fenster::Style::Sichtbar))
  704. {
  705. if (!psc)
  706. {
  707. gruppeF->removeStyle(Fenster::Style::Sichtbar);
  708. aktualisieren->removeStyle(Knopf::Style::Erlaubt);
  709. fehlerText->setText("Es wurde kein erreichbarer Patch Server gefunden.");
  710. fehlerF->addStyle(Fenster::Style::Sichtbar);
  711. zurück->addStyle(Knopf::Style::Erlaubt);
  712. return 1;
  713. }
  714. for (int i = 1; i < gruppeT->getZeilenAnzahl(); )
  715. gruppeT->removeZeile(i);
  716. Array< FileGroupInfo* > list;
  717. psc->getFileGroupInfoList(&list);
  718. int anz = list.getEintragAnzahl();
  719. for (int i = 0; i < anz; i++)
  720. {
  721. FileGroupInfo* fileGroup = list.get(i);
  722. Text* zeile = new Text("");
  723. zeile->append(fileGroup->id);
  724. gruppeT->addZeile(i + 1, zeile);
  725. TextFeld* name = new TextFeld();
  726. name->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::VCenter);
  727. name->setSchriftZ(schrift ? dynamic_cast<Schrift*>(schrift->getThis()) : 0);
  728. name->setSchriftFarbe(0xFFFFFFFF);
  729. name->setSchriftSize(12);
  730. name->setRahmenFarbe(0xFFFFFFFF);
  731. name->setText(fileGroup->name);
  732. gruppeT->setZeichnungZ(0, i + 1, name);
  733. TextFeld* pfad = new TextFeld();
  734. pfad->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Erlaubt | TextFeld::Style::Rahmen | TextFeld::Style::VCenter);
  735. pfad->setSchriftZ(schrift ? dynamic_cast<Schrift*>(schrift->getThis()) : 0);
  736. pfad->setSchriftFarbe(0xFFFFFFFF);
  737. pfad->setSchriftSize(12);
  738. pfad->setRahmenFarbe(0xFFFFFFFF);
  739. pfad->setText(fileGroup->path);
  740. gruppeT->setZeichnungZ(1, i + 1, pfad);
  741. TextFeld* version = new TextFeld();
  742. version->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Erlaubt | TextFeld::Style::Rahmen | TextFeld::Style::VCenter);
  743. version->setSchriftZ(schrift ? dynamic_cast<Schrift*>(schrift->getThis()) : 0);
  744. version->setSchriftFarbe(0xFFFFFFFF);
  745. version->setSchriftSize(12);
  746. version->setRahmenFarbe(0xFFFFFFFF);
  747. version->setText(Text(fileGroup->version));
  748. gruppeT->setZeichnungZ(2, i + 1, version);
  749. KontrollKnopf* auswahl = new KontrollKnopf();
  750. auswahl->setStyle(KontrollKnopf::Style::Sichtbar | KontrollKnopf::Style::Erlaubt | KontrollKnopf::Style::KlickBuffer | KontrollKnopf::Style::Rahmen);
  751. auswahl->loadData("data/bilder/icons.ltdb");
  752. auswahl->setMausEreignisParameter(this);
  753. auswahl->setMausEreignis(versionAuswahlKnopfMausEreignis);
  754. auswahl->setRahmenFarbe(0xFFFFFFFF);
  755. gruppeT->setZeichnungZ(3, i + 1, auswahl);
  756. delete fileGroup;
  757. }
  758. }
  759. else if (systemF->hatStyle(Fenster::Style::Sichtbar))
  760. {
  761. if (!psc)
  762. {
  763. gruppeF->removeStyle(Fenster::Style::Sichtbar);
  764. aktualisieren->removeStyle(Knopf::Style::Erlaubt);
  765. fehlerText->setText("Es wurde kein erreichbarer Patch Server gefunden.");
  766. fehlerF->addStyle(Fenster::Style::Sichtbar);
  767. zurück->addStyle(Knopf::Style::Erlaubt);
  768. return 1;
  769. }
  770. for (int i = 1; i < systemT->getZeilenAnzahl(); )
  771. systemT->removeZeile(i);
  772. Array< SystemInfo > list;
  773. psc->getSystemInfoList(&list);
  774. int anz = list.getEintragAnzahl();
  775. for (int i = 0; i < anz; i++)
  776. {
  777. SystemInfo system = list.get(i);
  778. Text* zeile = new Text("");
  779. zeile->append(system.id);
  780. systemT->addZeile(i + 1, zeile);
  781. TextFeld* name = new TextFeld();
  782. name->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::VCenter);
  783. name->setSchriftZ(schrift ? dynamic_cast<Schrift*>(schrift->getThis()) : 0);
  784. name->setSchriftFarbe(0xFFFFFFFF);
  785. name->setSchriftSize(12);
  786. name->setRahmenFarbe(0xFFFFFFFF);
  787. name->setText(system.name);
  788. systemT->setZeichnungZ(0, i + 1, name);
  789. TextFeld* pfad = new TextFeld();
  790. pfad->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Erlaubt | TextFeld::Style::Rahmen | TextFeld::Style::VCenter);
  791. pfad->setSchriftZ(schrift ? dynamic_cast<Schrift*>(schrift->getThis()) : 0);
  792. pfad->setText("");
  793. if (systemInit->wertExistiert(system.name))
  794. pfad->setText(systemInit->zWert(system.name)->getText());
  795. pfad->setSchriftFarbe(0xFFFFFFFF);
  796. pfad->setSchriftSize(12);
  797. pfad->setRahmenFarbe(0xFFFFFFFF);
  798. systemT->setZeichnungZ(1, i + 1, pfad);
  799. KontrollKnopf* auswahl = new KontrollKnopf();
  800. auswahl->setStyle(KontrollKnopf::Style::Sichtbar | KontrollKnopf::Style::Erlaubt | KontrollKnopf::Style::KlickBuffer | KontrollKnopf::Style::Rahmen);
  801. auswahl->loadData("data/bilder/icons.ltdb");
  802. auswahl->setMausEreignisParameter(this);
  803. auswahl->setMausEreignis(versionAuswahlKnopfMausEreignis);
  804. auswahl->setRahmenFarbe(0xFFFFFFFF);
  805. systemT->setZeichnungZ(2, i + 1, auswahl);
  806. }
  807. }
  808. else if (dateiF->hatStyle(Fenster::Style::Sichtbar))
  809. {
  810. if (!psc)
  811. {
  812. gruppeF->removeStyle(Fenster::Style::Sichtbar);
  813. aktualisieren->removeStyle(Knopf::Style::Erlaubt);
  814. fehlerText->setText("Es wurde kein erreichbarer Patch Server gefunden.");
  815. fehlerF->addStyle(Fenster::Style::Sichtbar);
  816. zurück->addStyle(Knopf::Style::Erlaubt);
  817. return 1;
  818. }
  819. for (int i = 1; i < dateiT->getZeilenAnzahl(); )
  820. dateiT->removeZeile(i);
  821. Array< FileInfo > list;
  822. psc->getFileInfoList(system, gruppe, &list);
  823. int anz = list.getEintragAnzahl();
  824. for (int i = 0; i < anz; i++)
  825. {
  826. FileInfo info = list.get(i);
  827. Text* zeile = new Text("");
  828. zeile->append(info.id);
  829. dateiT->addZeile(i + 1, zeile);
  830. TextFeld* pfad = new TextFeld();
  831. pfad->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::VCenter);
  832. pfad->setSchriftZ(schrift ? dynamic_cast<Schrift*>(schrift->getThis()) : 0);
  833. pfad->setSchriftFarbe(0xFFFFFFFF);
  834. pfad->setSchriftSize(12);
  835. pfad->setRahmenFarbe(0xFFFFFFFF);
  836. pfad->setText(info.path);
  837. dateiT->setZeichnungZ(0, i + 1, pfad);
  838. TextFeld* version = new TextFeld();
  839. version->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center);
  840. version->setSchriftZ(schrift ? dynamic_cast<Schrift*>(schrift->getThis()) : 0);
  841. version->setSchriftFarbe(0xFFFFFFFF);
  842. version->setSchriftSize(12);
  843. version->setRahmenFarbe(0xFFFFFFFF);
  844. version->setText(Text(info.version));
  845. dateiT->setZeichnungZ(1, i + 1, version);
  846. TextFeld* status = new TextFeld();
  847. status->setStyle(TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Center);
  848. status->setSchriftZ(schrift ? dynamic_cast<Schrift*>(schrift->getThis()) : 0);
  849. status->setSchriftSize(12);
  850. status->setRahmenFarbe(0xFFFFFFFF);
  851. status->setText("Aktuell");
  852. status->setSchriftFarbe(0xFF00FF00);
  853. Text* pf = new Text(systemInit->zWert(sName->getText())->getText());
  854. if (pf->getText()[pf->getLength() - 1] != '/')
  855. pf->append("/");
  856. pf->append(info.path);
  857. if (!DateiExistiert(pf->getText()))
  858. {
  859. status->setText("Gelöscht");
  860. status->setSchriftFarbe(0xFFFF0000);
  861. }
  862. else
  863. {
  864. Datei* d = new Datei();
  865. d->setDatei(pf->getText());
  866. if (!d->istOrdner())
  867. {
  868. Zeit* lä = d->getLastChange();
  869. if (!lä->istGleich("y-m-d h:i:s", info.time))
  870. {
  871. status->setText("Veraltet");
  872. status->setSchriftFarbe(0xFFFFFF00);
  873. }
  874. lä->release();
  875. }
  876. d->release();
  877. }
  878. pf->release();
  879. dateiT->setZeichnungZ(2, i + 1, status);
  880. }
  881. sucheDateien(systemInit->zWert(sName->getText())->getText(), list);
  882. }
  883. }
  884. return 1;
  885. }
  886. bool Version::zurückMausEreignis(void* o, MausEreignis me)
  887. {
  888. if (me.id == ME_RLinks)
  889. {
  890. if (fehlerF->hatStyle(Fenster::Style::Sichtbar))
  891. {
  892. fehlerF->removeStyle(Fenster::Style::Sichtbar);
  893. dateiF->removeStyle(Fenster::Style::Sichtbar);
  894. systemF->removeStyle(Fenster::Style::Sichtbar);
  895. zurück->removeStyle(Knopf::Style::Erlaubt);
  896. speichern->removeStyle(Knopf::Style::Erlaubt);
  897. weiter->removeStyle(Knopf::Style::Erlaubt);
  898. aktualisieren->addStyle(Knopf::Style::Erlaubt);
  899. gruppeF->addStyle(Fenster::Style::Sichtbar);
  900. aktualisierenMausEreignis(0, me);
  901. }
  902. else if (dateiF->hatStyle(Fenster::Style::Sichtbar))
  903. {
  904. fehlerF->removeStyle(Fenster::Style::Sichtbar);
  905. dateiF->removeStyle(Fenster::Style::Sichtbar);
  906. gruppeF->removeStyle(Fenster::Style::Sichtbar);
  907. weiter->removeStyle(Knopf::Style::Erlaubt);
  908. zurück->addStyle(Knopf::Style::Erlaubt);
  909. speichern->addStyle(Knopf::Style::Erlaubt);
  910. aktualisieren->addStyle(Knopf::Style::Erlaubt);
  911. systemF->addStyle(Fenster::Style::Sichtbar);
  912. aktualisierenMausEreignis(0, me);
  913. }
  914. else if (systemF->hatStyle(Fenster::Style::Sichtbar))
  915. {
  916. fehlerF->removeStyle(Fenster::Style::Sichtbar);
  917. dateiF->removeStyle(Fenster::Style::Sichtbar);
  918. systemF->removeStyle(Fenster::Style::Sichtbar);
  919. zurück->removeStyle(Knopf::Style::Erlaubt);
  920. speichern->removeStyle(Knopf::Style::Erlaubt);
  921. weiter->removeStyle(Knopf::Style::Erlaubt);
  922. aktualisieren->addStyle(Knopf::Style::Erlaubt);
  923. gruppeF->addStyle(Fenster::Style::Sichtbar);
  924. aktualisierenMausEreignis(0, me);
  925. }
  926. }
  927. return 1;
  928. }
  929. void Version::commitAll()
  930. {
  931. MausEreignis me;
  932. me.id = ME_RLinks;
  933. me.verarbeitet = 0;
  934. aktualisierenMausEreignis(aktualisieren, me);
  935. for (int i = 1; i < gruppeT->getZeilenAnzahl(); i++)
  936. {
  937. std::cout << "Gruppe: " << ((TextFeld*)gruppeT->zZeichnung(0, i))->zText()->getText() << ": \n";
  938. Zeichnung* z = gruppeT->zZeichnung(3, i); // auswahl knopf
  939. me.mx = z->getX();
  940. me.my = z->getY();
  941. me.verarbeitet = 0;
  942. z->doPublicMausEreignis(me);
  943. me.verarbeitet = 0;
  944. weiterMausEreignis(weiter, me);
  945. aktualisierenMausEreignis(aktualisieren, me);
  946. for (int j = 1; j < systemT->getZeilenAnzahl(); j++)
  947. {
  948. std::cout << ((TextFeld*)systemT->zZeichnung(0, j))->zText()->getText() << ": ";
  949. Zeichnung* z = systemT->zZeichnung(2, j); // auswahl knopf
  950. me.mx = z->getX();
  951. me.my = z->getY();
  952. me.verarbeitet = 0;
  953. z->doPublicMausEreignis(me);
  954. me.verarbeitet = 0;
  955. weiterMausEreignis(weiter, me);
  956. aktualisierenMausEreignis(aktualisieren, me);
  957. bool needCommit = 0;
  958. for (int k = 1; k < dateiT->getZeilenAnzahl(); k++)
  959. needCommit |= !((TextFeld*)dateiT->zZeichnung(2, k))->zText()->istGleich("Aktuell");
  960. if (needCommit)
  961. {
  962. commitMausEreignis(commit, me);
  963. std::cout << "Commit successfull\n";
  964. }
  965. else
  966. std::cout << "Unchanged\n";
  967. zurückMausEreignis(zurück, me);
  968. }
  969. zurückMausEreignis(zurück, me);
  970. }
  971. }
  972. // constant
  973. InitDatei* Version::getSystemInit() const
  974. {
  975. return dynamic_cast<InitDatei*>(systemInit->getThis());
  976. }
  977. // Ereignisse
  978. bool versionNeuGruppeKMausEreignis(void* p, void* o, MausEreignis me)
  979. {
  980. if (!p)
  981. return 0;
  982. return ((Version*)p)->neuGruppeKMausEreignis(o, me);
  983. }
  984. bool versionAuswahlKnopfMausEreignis(void* p, void* o, MausEreignis me)
  985. {
  986. if (!p)
  987. return 0;
  988. return ((Version*)p)->auswahlKnopfMausEreignis(o, me);
  989. }
  990. bool versionNeuSystemKMausEreignis(void* p, void* o, MausEreignis me)
  991. {
  992. if (!p)
  993. return 0;
  994. return ((Version*)p)->neuSystemKMausEreignis(o, me);
  995. }
  996. bool versionSpeichernMausEreignis(void* p, void* o, MausEreignis me)
  997. {
  998. if (!p)
  999. return 0;
  1000. return ((Version*)p)->speichernMausEreignis(o, me);
  1001. }
  1002. bool versionWeiterMausEreignis(void* p, void* o, MausEreignis me)
  1003. {
  1004. if (!p)
  1005. return 0;
  1006. return ((Version*)p)->weiterMausEreignis(o, me);
  1007. }
  1008. bool versionCommitMausEreignis(void* p, void* o, MausEreignis me)
  1009. {
  1010. if (!p)
  1011. return 0;
  1012. return ((Version*)p)->commitMausEreignis(o, me);
  1013. }
  1014. bool versionAktualisierenMausEreignis(void* p, void* o, MausEreignis me)
  1015. {
  1016. if (!p)
  1017. return 0;
  1018. return ((Version*)p)->aktualisierenMausEreignis(o, me);
  1019. }
  1020. bool versionZurückMausEreignis(void* p, void* o, MausEreignis me)
  1021. {
  1022. if (!p)
  1023. return 0;
  1024. return ((Version*)p)->zurückMausEreignis(o, me);
  1025. }