Changeset 15 for trunk


Ignore:
Timestamp:
Apr 29, 2016, 12:09:44 AM (9 years ago)
Author:
chronos
Message:
  • Modified: Now project file have XML structure. Loading and saving old format is still supported using .csv extension.
  • Fixed: Question before closing modified unsaved project.
Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/AcronymDecoder.lpi

    r14 r15  
    133133        <IsPartOfProject Value="True"/>
    134134        <ComponentName Value="FormCategorySelect"/>
     135        <HasResources Value="True"/>
    135136        <ResourceBaseClass Value="Form"/>
    136137      </Unit6>
     
    139140        <IsPartOfProject Value="True"/>
    140141        <ComponentName Value="FormCategories"/>
     142        <HasResources Value="True"/>
    141143        <ResourceBaseClass Value="Form"/>
    142144      </Unit7>
  • trunk/Example acronyms.adp

    r14 r15  
    1 ACL,"Access Control List",Chat;Internet
    2 AJAX,"Asynchronous JavaScript and XML",Chat
    3 AP,"Access Point",Internet
    4 API,"Application Programming Interface",
    5 AS,"Autonomous System",
    6 ATXl,"Advanced Technology eXtended",
    7 BGP,"Border Gateway Protocol",
    8 BIOS,"Basic Input Output System",
    9 CDMA,"Code Division Multiple Access",
    10 CPU,"Central Processing Unit",
    11 CRM,"Customer Relationship Management",
    12 CSS,"Cascading Style Sheets",
    13 CSV,"Comma-separated Values",
    14 CVS,"Concurrent Version Control",
    15 DFS,"Dynamic Frequency Selection",
    16 DNS,"Domain Name Server",
    17 DVB-T,"Digital Video Broadcast - Terrestrial",
    18 ECC,"Error-correcting code memory",
    19 EDGE,"Enhanced Data Rates for GSM Evolution",
    20 ERP,"Enterprise Resource Planning",
    21 FPS,"Frames Per Second",
    22 FTP,"File Transfer Protocol",
    23 FUP,"Fair User Policy",
    24 GM,"Game Master",
    25 GPS,"Global Positioning System",
    26 HD,"High Definition",
    27 HD,"Half Duplex",
    28 HSDPA,"High-Speed Downlink Packet Access",
    29 HTML,"HyperText Markup Language",
    30 HTTP,"Hypertext Transport Protocol",
    31 IP,"Internet Protocol",
    32 IPTV,"Internet Protocol Television",
    33 IRC,"Internet Relay Chat",
    34 ISP,"Internet Service Provider",
    35 JSON,"JavaScript Object Notation",
    36 KVM,"Keyboard Video Mouse",
    37 LXC,"LinuX Containers",
    38 MAC,"Media Access Control address",
    39 MTU,"Maximum Transmission Unit",
    40 NFS,"Network File System",
    41 NTP,"Network Time Protocol",
    42 OFX,"Open Financial Exchange",
    43 OS,"Operační Systém",
    44 OSA,"Ochranný svaz autorský",
    45 PC,"Personal Computer",
    46 PCI,"Peripheral Component Interconnect",
    47 PCIe,"Peripheral Component Interconnect Express",
    48 RAM,"Random Access Memory",
    49 RPM,"Redhat Pakage Manager",
    50 RSS,"Rich Site Summary",
    51 RTSP,"Real Time Streaming Protocol",
    52 SAS,"Serial-Attached SCSI",
    53 SATA,"Serial AT Attachment",
    54 SCP,"Secure copy",
    55 SDK,"Software Development Kit",
    56 SMTP,"Simple Mail Transport Protocol",
    57 SOAP,"Simple Object Access Protocol",
    58 SQL,"Server Query Language",
    59 SSD,"Solid State Drive",
    60 SSL,"Secure Sockets Layer",
    61 SVN,Subversion,
    62 TCP,"Transmission Control Protocol",
    63 TDMA,"Time Division Multiple Access",
    64 TDP,"Thermal Design Power",
    65 UDP,"User Datagrap Protocol",
    66 URL,"Uniform Resource Locator",
    67 USB,"Universal Serial Bus",
    68 VCS,"Version Control System",
    69 VNC,"Virtual Network Computing",
    70 VPN,"Virtual Private Network",
    71 VPS,"Virtual Private Server",
    72 WDS,"Wireless Distribution System",
    73 WoW,"World of Warcraft",
    74 XML,"eXtensible Markup Language",
     1<?xml version="1.0" encoding="utf-8"?>
     2<AcronymDecoderProject>
     3  <Categories>
     4    <Category>
     5      <Name>Chat</Name>
     6      <Id>1</Id>
     7    </Category>
     8    <Category>
     9      <Name>Internet</Name>
     10      <Id>2</Id>
     11    </Category>
     12  </Categories>
     13  <Acronyms>
     14    <Acronym>
     15      <Name>ACL</Name>
     16      <Meanings>
     17        <Meaning>
     18          <Name>Access Control List</Name>
     19          <Description>g fdgfd gfdg fgfd gf
     20g fdg
     21fdů</Description>
     22          <Language/>
     23          <Categories>
     24            <Category>
     25              <Id>1</Id>
     26            </Category>
     27            <Category>
     28              <Id>2</Id>
     29            </Category>
     30          </Categories>
     31        </Meaning>
     32      </Meanings>
     33    </Acronym>
     34    <Acronym>
     35      <Name>AJAX</Name>
     36      <Meanings>
     37        <Meaning>
     38          <Name>Asynchronous JavaScript and XML</Name>
     39          <Description/>
     40          <Language/>
     41          <Categories>
     42            <Category>
     43              <Id>1</Id>
     44            </Category>
     45          </Categories>
     46        </Meaning>
     47      </Meanings>
     48    </Acronym>
     49    <Acronym>
     50      <Name>AP</Name>
     51      <Meanings>
     52        <Meaning>
     53          <Name>Access Point</Name>
     54          <Description/>
     55          <Language/>
     56          <Categories>
     57            <Category>
     58              <Id>2</Id>
     59            </Category>
     60          </Categories>
     61        </Meaning>
     62      </Meanings>
     63    </Acronym>
     64    <Acronym>
     65      <Name>API</Name>
     66      <Meanings>
     67        <Meaning>
     68          <Name>Application Programming Interface</Name>
     69          <Description/>
     70          <Language/>
     71          <Categories/>
     72        </Meaning>
     73      </Meanings>
     74    </Acronym>
     75    <Acronym>
     76      <Name>AS</Name>
     77      <Meanings>
     78        <Meaning>
     79          <Name>Autonomous System</Name>
     80          <Description/>
     81          <Language/>
     82          <Categories/>
     83        </Meaning>
     84      </Meanings>
     85    </Acronym>
     86    <Acronym>
     87      <Name>ATXl</Name>
     88      <Meanings>
     89        <Meaning>
     90          <Name>Advanced Technology eXtended</Name>
     91          <Description/>
     92          <Language/>
     93          <Categories/>
     94        </Meaning>
     95      </Meanings>
     96    </Acronym>
     97    <Acronym>
     98      <Name>BGP</Name>
     99      <Meanings>
     100        <Meaning>
     101          <Name>Border Gateway Protocol</Name>
     102          <Description/>
     103          <Language/>
     104          <Categories/>
     105        </Meaning>
     106      </Meanings>
     107    </Acronym>
     108    <Acronym>
     109      <Name>BIOS</Name>
     110      <Meanings>
     111        <Meaning>
     112          <Name>Basic Input Output System</Name>
     113          <Description/>
     114          <Language/>
     115          <Categories/>
     116        </Meaning>
     117      </Meanings>
     118    </Acronym>
     119    <Acronym>
     120      <Name>CDMA</Name>
     121      <Meanings>
     122        <Meaning>
     123          <Name>Code Division Multiple Access</Name>
     124          <Description/>
     125          <Language/>
     126          <Categories/>
     127        </Meaning>
     128      </Meanings>
     129    </Acronym>
     130    <Acronym>
     131      <Name>CPU</Name>
     132      <Meanings>
     133        <Meaning>
     134          <Name>Central Processing Unit</Name>
     135          <Description/>
     136          <Language/>
     137          <Categories/>
     138        </Meaning>
     139      </Meanings>
     140    </Acronym>
     141    <Acronym>
     142      <Name>CRM</Name>
     143      <Meanings>
     144        <Meaning>
     145          <Name>Customer Relationship Management</Name>
     146          <Description/>
     147          <Language/>
     148          <Categories/>
     149        </Meaning>
     150      </Meanings>
     151    </Acronym>
     152    <Acronym>
     153      <Name>CSS</Name>
     154      <Meanings>
     155        <Meaning>
     156          <Name>Cascading Style Sheets</Name>
     157          <Description/>
     158          <Language/>
     159          <Categories/>
     160        </Meaning>
     161      </Meanings>
     162    </Acronym>
     163    <Acronym>
     164      <Name>CSV</Name>
     165      <Meanings>
     166        <Meaning>
     167          <Name>Comma-separated Values</Name>
     168          <Description/>
     169          <Language/>
     170          <Categories/>
     171        </Meaning>
     172      </Meanings>
     173    </Acronym>
     174    <Acronym>
     175      <Name>CVS</Name>
     176      <Meanings>
     177        <Meaning>
     178          <Name>Concurrent Version Control</Name>
     179          <Description/>
     180          <Language/>
     181          <Categories/>
     182        </Meaning>
     183      </Meanings>
     184    </Acronym>
     185    <Acronym>
     186      <Name>DFS</Name>
     187      <Meanings>
     188        <Meaning>
     189          <Name>Dynamic Frequency Selection</Name>
     190          <Description/>
     191          <Language/>
     192          <Categories/>
     193        </Meaning>
     194      </Meanings>
     195    </Acronym>
     196    <Acronym>
     197      <Name>DNS</Name>
     198      <Meanings>
     199        <Meaning>
     200          <Name>Domain Name Server</Name>
     201          <Description/>
     202          <Language/>
     203          <Categories/>
     204        </Meaning>
     205      </Meanings>
     206    </Acronym>
     207    <Acronym>
     208      <Name>DVB-T</Name>
     209      <Meanings>
     210        <Meaning>
     211          <Name>Digital Video Broadcast - Terrestrial</Name>
     212          <Description/>
     213          <Language/>
     214          <Categories/>
     215        </Meaning>
     216      </Meanings>
     217    </Acronym>
     218    <Acronym>
     219      <Name>ECC</Name>
     220      <Meanings>
     221        <Meaning>
     222          <Name>Error-correcting code memory</Name>
     223          <Description/>
     224          <Language/>
     225          <Categories/>
     226        </Meaning>
     227      </Meanings>
     228    </Acronym>
     229    <Acronym>
     230      <Name>EDGE</Name>
     231      <Meanings>
     232        <Meaning>
     233          <Name>Enhanced Data Rates for GSM Evolution</Name>
     234          <Description/>
     235          <Language/>
     236          <Categories/>
     237        </Meaning>
     238      </Meanings>
     239    </Acronym>
     240    <Acronym>
     241      <Name>ERP</Name>
     242      <Meanings>
     243        <Meaning>
     244          <Name>Enterprise Resource Planning</Name>
     245          <Description/>
     246          <Language/>
     247          <Categories/>
     248        </Meaning>
     249      </Meanings>
     250    </Acronym>
     251    <Acronym>
     252      <Name>FPS</Name>
     253      <Meanings>
     254        <Meaning>
     255          <Name>Frames Per Second</Name>
     256          <Description/>
     257          <Language/>
     258          <Categories/>
     259        </Meaning>
     260      </Meanings>
     261    </Acronym>
     262    <Acronym>
     263      <Name>FTP</Name>
     264      <Meanings>
     265        <Meaning>
     266          <Name>File Transfer Protocol</Name>
     267          <Description/>
     268          <Language/>
     269          <Categories/>
     270        </Meaning>
     271      </Meanings>
     272    </Acronym>
     273    <Acronym>
     274      <Name>FUP</Name>
     275      <Meanings>
     276        <Meaning>
     277          <Name>Fair User Policy</Name>
     278          <Description/>
     279          <Language/>
     280          <Categories/>
     281        </Meaning>
     282      </Meanings>
     283    </Acronym>
     284    <Acronym>
     285      <Name>GM</Name>
     286      <Meanings>
     287        <Meaning>
     288          <Name>Game Master</Name>
     289          <Description/>
     290          <Language/>
     291          <Categories/>
     292        </Meaning>
     293      </Meanings>
     294    </Acronym>
     295    <Acronym>
     296      <Name>GPS</Name>
     297      <Meanings>
     298        <Meaning>
     299          <Name>Global Positioning System</Name>
     300          <Description/>
     301          <Language/>
     302          <Categories/>
     303        </Meaning>
     304      </Meanings>
     305    </Acronym>
     306    <Acronym>
     307      <Name>HD</Name>
     308      <Meanings>
     309        <Meaning>
     310          <Name>High Definition</Name>
     311          <Description/>
     312          <Language/>
     313          <Categories/>
     314        </Meaning>
     315        <Meaning>
     316          <Name>Half Duplex</Name>
     317          <Description/>
     318          <Language/>
     319          <Categories/>
     320        </Meaning>
     321      </Meanings>
     322    </Acronym>
     323    <Acronym>
     324      <Name>HSDPA</Name>
     325      <Meanings>
     326        <Meaning>
     327          <Name>High-Speed Downlink Packet Access</Name>
     328          <Description/>
     329          <Language/>
     330          <Categories/>
     331        </Meaning>
     332      </Meanings>
     333    </Acronym>
     334    <Acronym>
     335      <Name>HTML</Name>
     336      <Meanings>
     337        <Meaning>
     338          <Name>HyperText Markup Language</Name>
     339          <Description/>
     340          <Language/>
     341          <Categories/>
     342        </Meaning>
     343      </Meanings>
     344    </Acronym>
     345    <Acronym>
     346      <Name>HTTP</Name>
     347      <Meanings>
     348        <Meaning>
     349          <Name>Hypertext Transport Protocol</Name>
     350          <Description/>
     351          <Language/>
     352          <Categories/>
     353        </Meaning>
     354      </Meanings>
     355    </Acronym>
     356    <Acronym>
     357      <Name>IP</Name>
     358      <Meanings>
     359        <Meaning>
     360          <Name>Internet Protocol</Name>
     361          <Description/>
     362          <Language/>
     363          <Categories/>
     364        </Meaning>
     365      </Meanings>
     366    </Acronym>
     367    <Acronym>
     368      <Name>IPTV</Name>
     369      <Meanings>
     370        <Meaning>
     371          <Name>Internet Protocol Television</Name>
     372          <Description/>
     373          <Language/>
     374          <Categories/>
     375        </Meaning>
     376      </Meanings>
     377    </Acronym>
     378    <Acronym>
     379      <Name>IRC</Name>
     380      <Meanings>
     381        <Meaning>
     382          <Name>Internet Relay Chat</Name>
     383          <Description/>
     384          <Language/>
     385          <Categories/>
     386        </Meaning>
     387      </Meanings>
     388    </Acronym>
     389    <Acronym>
     390      <Name>ISP</Name>
     391      <Meanings>
     392        <Meaning>
     393          <Name>Internet Service Provider</Name>
     394          <Description/>
     395          <Language/>
     396          <Categories/>
     397        </Meaning>
     398      </Meanings>
     399    </Acronym>
     400    <Acronym>
     401      <Name>JSON</Name>
     402      <Meanings>
     403        <Meaning>
     404          <Name>JavaScript Object Notation</Name>
     405          <Description/>
     406          <Language/>
     407          <Categories/>
     408        </Meaning>
     409      </Meanings>
     410    </Acronym>
     411    <Acronym>
     412      <Name>KVM</Name>
     413      <Meanings>
     414        <Meaning>
     415          <Name>Keyboard Video Mouse</Name>
     416          <Description/>
     417          <Language/>
     418          <Categories/>
     419        </Meaning>
     420      </Meanings>
     421    </Acronym>
     422    <Acronym>
     423      <Name>LXC</Name>
     424      <Meanings>
     425        <Meaning>
     426          <Name>LinuX Containers</Name>
     427          <Description/>
     428          <Language/>
     429          <Categories/>
     430        </Meaning>
     431      </Meanings>
     432    </Acronym>
     433    <Acronym>
     434      <Name>MAC</Name>
     435      <Meanings>
     436        <Meaning>
     437          <Name>Media Access Control address</Name>
     438          <Description/>
     439          <Language/>
     440          <Categories/>
     441        </Meaning>
     442      </Meanings>
     443    </Acronym>
     444    <Acronym>
     445      <Name>MTU</Name>
     446      <Meanings>
     447        <Meaning>
     448          <Name>Maximum Transmission Unit</Name>
     449          <Description/>
     450          <Language/>
     451          <Categories/>
     452        </Meaning>
     453      </Meanings>
     454    </Acronym>
     455    <Acronym>
     456      <Name>NFS</Name>
     457      <Meanings>
     458        <Meaning>
     459          <Name>Network File System</Name>
     460          <Description/>
     461          <Language/>
     462          <Categories/>
     463        </Meaning>
     464      </Meanings>
     465    </Acronym>
     466    <Acronym>
     467      <Name>NTP</Name>
     468      <Meanings>
     469        <Meaning>
     470          <Name>Network Time Protocol</Name>
     471          <Description/>
     472          <Language/>
     473          <Categories/>
     474        </Meaning>
     475      </Meanings>
     476    </Acronym>
     477    <Acronym>
     478      <Name>OFX</Name>
     479      <Meanings>
     480        <Meaning>
     481          <Name>Open Financial Exchange</Name>
     482          <Description/>
     483          <Language/>
     484          <Categories/>
     485        </Meaning>
     486      </Meanings>
     487    </Acronym>
     488    <Acronym>
     489      <Name>OS</Name>
     490      <Meanings>
     491        <Meaning>
     492          <Name>Operační Systém</Name>
     493          <Description/>
     494          <Language/>
     495          <Categories/>
     496        </Meaning>
     497      </Meanings>
     498    </Acronym>
     499    <Acronym>
     500      <Name>OSA</Name>
     501      <Meanings>
     502        <Meaning>
     503          <Name>Ochranný svaz autorský</Name>
     504          <Description/>
     505          <Language/>
     506          <Categories/>
     507        </Meaning>
     508      </Meanings>
     509    </Acronym>
     510    <Acronym>
     511      <Name>PC</Name>
     512      <Meanings>
     513        <Meaning>
     514          <Name>Personal Computer</Name>
     515          <Description/>
     516          <Language/>
     517          <Categories/>
     518        </Meaning>
     519      </Meanings>
     520    </Acronym>
     521    <Acronym>
     522      <Name>PCI</Name>
     523      <Meanings>
     524        <Meaning>
     525          <Name>Peripheral Component Interconnect</Name>
     526          <Description/>
     527          <Language/>
     528          <Categories/>
     529        </Meaning>
     530      </Meanings>
     531    </Acronym>
     532    <Acronym>
     533      <Name>PCIe</Name>
     534      <Meanings>
     535        <Meaning>
     536          <Name>Peripheral Component Interconnect Express</Name>
     537          <Description/>
     538          <Language/>
     539          <Categories/>
     540        </Meaning>
     541      </Meanings>
     542    </Acronym>
     543    <Acronym>
     544      <Name>RAM</Name>
     545      <Meanings>
     546        <Meaning>
     547          <Name>Random Access Memory</Name>
     548          <Description/>
     549          <Language/>
     550          <Categories/>
     551        </Meaning>
     552      </Meanings>
     553    </Acronym>
     554    <Acronym>
     555      <Name>RPM</Name>
     556      <Meanings>
     557        <Meaning>
     558          <Name>Redhat Pakage Manager</Name>
     559          <Description/>
     560          <Language/>
     561          <Categories/>
     562        </Meaning>
     563      </Meanings>
     564    </Acronym>
     565    <Acronym>
     566      <Name>RSS</Name>
     567      <Meanings>
     568        <Meaning>
     569          <Name>Rich Site Summary</Name>
     570          <Description/>
     571          <Language/>
     572          <Categories/>
     573        </Meaning>
     574      </Meanings>
     575    </Acronym>
     576    <Acronym>
     577      <Name>RTSP</Name>
     578      <Meanings>
     579        <Meaning>
     580          <Name>Real Time Streaming Protocol</Name>
     581          <Description/>
     582          <Language/>
     583          <Categories/>
     584        </Meaning>
     585      </Meanings>
     586    </Acronym>
     587    <Acronym>
     588      <Name>SAS</Name>
     589      <Meanings>
     590        <Meaning>
     591          <Name>Serial-Attached SCSI</Name>
     592          <Description/>
     593          <Language/>
     594          <Categories/>
     595        </Meaning>
     596      </Meanings>
     597    </Acronym>
     598    <Acronym>
     599      <Name>SATA</Name>
     600      <Meanings>
     601        <Meaning>
     602          <Name>Serial AT Attachment</Name>
     603          <Description/>
     604          <Language/>
     605          <Categories/>
     606        </Meaning>
     607      </Meanings>
     608    </Acronym>
     609    <Acronym>
     610      <Name>SCP</Name>
     611      <Meanings>
     612        <Meaning>
     613          <Name>Secure copy</Name>
     614          <Description/>
     615          <Language/>
     616          <Categories/>
     617        </Meaning>
     618      </Meanings>
     619    </Acronym>
     620    <Acronym>
     621      <Name>SDK</Name>
     622      <Meanings>
     623        <Meaning>
     624          <Name>Software Development Kit</Name>
     625          <Description/>
     626          <Language/>
     627          <Categories/>
     628        </Meaning>
     629      </Meanings>
     630    </Acronym>
     631    <Acronym>
     632      <Name>SMTP</Name>
     633      <Meanings>
     634        <Meaning>
     635          <Name>Simple Mail Transport Protocol</Name>
     636          <Description/>
     637          <Language/>
     638          <Categories/>
     639        </Meaning>
     640      </Meanings>
     641    </Acronym>
     642    <Acronym>
     643      <Name>SOAP</Name>
     644      <Meanings>
     645        <Meaning>
     646          <Name>Simple Object Access Protocol</Name>
     647          <Description/>
     648          <Language/>
     649          <Categories/>
     650        </Meaning>
     651      </Meanings>
     652    </Acronym>
     653    <Acronym>
     654      <Name>SQL</Name>
     655      <Meanings>
     656        <Meaning>
     657          <Name>Server Query Language</Name>
     658          <Description/>
     659          <Language/>
     660          <Categories/>
     661        </Meaning>
     662      </Meanings>
     663    </Acronym>
     664    <Acronym>
     665      <Name>SSD</Name>
     666      <Meanings>
     667        <Meaning>
     668          <Name>Solid State Drive</Name>
     669          <Description/>
     670          <Language/>
     671          <Categories/>
     672        </Meaning>
     673      </Meanings>
     674    </Acronym>
     675    <Acronym>
     676      <Name>SSL</Name>
     677      <Meanings>
     678        <Meaning>
     679          <Name>Secure Sockets Layer</Name>
     680          <Description/>
     681          <Language/>
     682          <Categories/>
     683        </Meaning>
     684      </Meanings>
     685    </Acronym>
     686    <Acronym>
     687      <Name>SVN</Name>
     688      <Meanings>
     689        <Meaning>
     690          <Name>Subversion</Name>
     691          <Description/>
     692          <Language/>
     693          <Categories/>
     694        </Meaning>
     695      </Meanings>
     696    </Acronym>
     697    <Acronym>
     698      <Name>TCP</Name>
     699      <Meanings>
     700        <Meaning>
     701          <Name>Transmission Control Protocol</Name>
     702          <Description/>
     703          <Language/>
     704          <Categories/>
     705        </Meaning>
     706      </Meanings>
     707    </Acronym>
     708    <Acronym>
     709      <Name>TDMA</Name>
     710      <Meanings>
     711        <Meaning>
     712          <Name>Time Division Multiple Access</Name>
     713          <Description/>
     714          <Language/>
     715          <Categories/>
     716        </Meaning>
     717      </Meanings>
     718    </Acronym>
     719    <Acronym>
     720      <Name>TDP</Name>
     721      <Meanings>
     722        <Meaning>
     723          <Name>Thermal Design Power</Name>
     724          <Description/>
     725          <Language/>
     726          <Categories/>
     727        </Meaning>
     728      </Meanings>
     729    </Acronym>
     730    <Acronym>
     731      <Name>UDP</Name>
     732      <Meanings>
     733        <Meaning>
     734          <Name>User Datagrap Protocol</Name>
     735          <Description/>
     736          <Language/>
     737          <Categories/>
     738        </Meaning>
     739      </Meanings>
     740    </Acronym>
     741    <Acronym>
     742      <Name>URL</Name>
     743      <Meanings>
     744        <Meaning>
     745          <Name>Uniform Resource Locator</Name>
     746          <Description/>
     747          <Language/>
     748          <Categories/>
     749        </Meaning>
     750      </Meanings>
     751    </Acronym>
     752    <Acronym>
     753      <Name>USB</Name>
     754      <Meanings>
     755        <Meaning>
     756          <Name>Universal Serial Bus</Name>
     757          <Description/>
     758          <Language/>
     759          <Categories/>
     760        </Meaning>
     761      </Meanings>
     762    </Acronym>
     763    <Acronym>
     764      <Name>VCS</Name>
     765      <Meanings>
     766        <Meaning>
     767          <Name>Version Control System</Name>
     768          <Description/>
     769          <Language/>
     770          <Categories/>
     771        </Meaning>
     772      </Meanings>
     773    </Acronym>
     774    <Acronym>
     775      <Name>VNC</Name>
     776      <Meanings>
     777        <Meaning>
     778          <Name>Virtual Network Computing</Name>
     779          <Description/>
     780          <Language/>
     781          <Categories/>
     782        </Meaning>
     783      </Meanings>
     784    </Acronym>
     785    <Acronym>
     786      <Name>VPN</Name>
     787      <Meanings>
     788        <Meaning>
     789          <Name>Virtual Private Network</Name>
     790          <Description/>
     791          <Language/>
     792          <Categories/>
     793        </Meaning>
     794      </Meanings>
     795    </Acronym>
     796    <Acronym>
     797      <Name>VPS</Name>
     798      <Meanings>
     799        <Meaning>
     800          <Name>Virtual Private Server</Name>
     801          <Description/>
     802          <Language/>
     803          <Categories/>
     804        </Meaning>
     805      </Meanings>
     806    </Acronym>
     807    <Acronym>
     808      <Name>WDS</Name>
     809      <Meanings>
     810        <Meaning>
     811          <Name>Wireless Distribution System</Name>
     812          <Description/>
     813          <Language/>
     814          <Categories/>
     815        </Meaning>
     816      </Meanings>
     817    </Acronym>
     818    <Acronym>
     819      <Name>WoW</Name>
     820      <Meanings>
     821        <Meaning>
     822          <Name>World of Warcraft</Name>
     823          <Description/>
     824          <Language/>
     825          <Categories/>
     826        </Meaning>
     827      </Meanings>
     828    </Acronym>
     829    <Acronym>
     830      <Name>XML</Name>
     831      <Meanings>
     832        <Meaning>
     833          <Name>eXtensible Markup Language</Name>
     834          <Description/>
     835          <Language/>
     836          <Categories/>
     837        </Meaning>
     838      </Meanings>
     839    </Acronym>
     840  </Acronyms>
     841</AcronymDecoderProject>
  • trunk/Languages/AcronymDecoder.cs.po

    r14 r15  
    5353
    5454#: tformcategories.aadd.caption
    55 #, fuzzy
    5655msgctxt "tformcategories.aadd.caption"
    5756msgid "Add"
     
    5958
    6059#: tformcategories.amodify.caption
    61 #, fuzzy
    6260msgctxt "tformcategories.amodify.caption"
    6361msgid "Modify"
     
    6563
    6664#: tformcategories.aremove.caption
    67 #, fuzzy
    6865msgctxt "tformcategories.aremove.caption"
    6966msgid "Remove"
     
    7269#: tformcategories.caption
    7370msgid "Acronym categories"
    74 msgstr ""
     71msgstr "Kategorie zkratek"
    7572
    7673#: tformcategories.listviewcategories.columns[0].caption
    77 #, fuzzy
    7874msgctxt "tformcategories.listviewcategories.columns[0].caption"
    7975msgid "Name"
     
    8379msgctxt "tformcategories.listviewcategories.columns[1].caption"
    8480msgid "Used count"
    85 msgstr ""
     81msgstr "Počet použití"
    8682
    8783#: tformcategoryselect.buttoncancel.caption
     
    195191
    196192#: tformmain.listviewacronyms.columns[2].caption
    197 #, fuzzy
    198 #| msgid "Contexts"
    199193msgctxt "tformmain.listviewacronyms.columns[2].caption"
    200194msgid "Categories"
    201 msgstr "Kontexty"
     195msgstr "Kategorie"
    202196
    203197#: tformmain.menuitem15.caption
     
    211205#: tformmain.menuitem20.caption
    212206msgid "View"
    213 msgstr ""
     207msgstr "Zobrazení"
    214208
    215209#: tformmain.menuitem8.caption
     
    244238msgstr "Jazyk:"
    245239
     240#: uacronym.swrongfileformat
     241msgid "Wrong file format"
     242msgstr "Špatný formát souboru"
     243
    246244#: uformacronym.scategory
    247245msgctxt "uformacronym.scategory"
     
    258256
    259257#: uformcategories.scategory
    260 #, fuzzy
    261258msgctxt "uformcategories.scategory"
    262259msgid "Category"
     
    265262#: uformcategories.scategoryalreadyexists
    266263msgid "Category %s already exists!"
    267 msgstr ""
     264msgstr "Kategorie %s již existuje!"
    268265
    269266#: uformcategories.scategoryquery
    270267msgid "Enter name of category"
    271 msgstr ""
     268msgstr "Zadejte jméno kategorie"
    272269
    273270#: uformcategories.sremovecategory
     
    310307msgid "Do you want to remove all acronyms?"
    311308msgstr "Chcete odebrat všechny zkratky?"
    312 
  • trunk/Languages/AcronymDecoder.po

    r14 r15  
    228228msgstr ""
    229229
     230#: uacronym.swrongfileformat
     231msgid "Wrong file format"
     232msgstr ""
     233
    230234#: uformacronym.scategory
    231235msgctxt "uformacronym.scategory"
  • trunk/UAcronym.pas

    r14 r15  
    66
    77uses
    8   Classes, SysUtils, Contnrs;
     8  Classes, SysUtils, Contnrs, XMLConf, XMLRead, XMLWrite, DOM, UXMLUtils;
    99
    1010type
    1111  TAcronymCategories = class;
    1212  TAcronymMeanings = class;
     13  TAcronymDb = class;
    1314
    1415  TAcronymSource = class
     
    2425
    2526  TAcronym = class
     27    Db: TAcronymDb;
    2628    Name: string;
    2729    Meanings: TAcronymMeanings;
     30    procedure SaveToNode(Node: TDOMNode);
     31    procedure LoadFromNode(Node: TDOMNode);
    2832    constructor Create;
    2933    destructor Destroy; override;
     34  end;
     35
     36  { TAcronyms }
     37
     38  TAcronyms = class(TObjectList)
     39    Db: TAcronymDb;
     40    procedure SaveToNode(Node: TDOMNode);
     41    procedure LoadFromNode(Node: TDOMNode);
     42    function SearchByName(Name: string): TAcronym;
     43    function AddAcronym(Name: string): TAcronym;
    3044  end;
    3145
     
    3953    Categories: TAcronymCategories;
    4054    Source: TAcronymSource;
     55    procedure SaveToNode(Node: TDOMNode);
     56    procedure LoadFromNode(Node: TDOMNode);
    4157    constructor Create;
    4258    destructor Destroy; override;
     
    4662
    4763  TAcronymMeanings = class(TObjectList)
     64    Acronym: TAcronym;
     65    procedure SaveToNode(Node: TDOMNode);
     66    procedure LoadFromNode(Node: TDOMNode);
    4867    function SearchByName(Name: string): TAcronymMeaning;
    4968    function AddMeaning(Name: string): TAcronymMeaning;
    5069  end;
    5170
    52   { TAcronyms }
    53 
    54   TAcronyms = class(TObjectList)
    55     function SearchByName(Name: string): TAcronym;
    56     function AddAcronym(Name: string): TAcronym;
    57   end;
    58 
    5971  { TAcronymCategory }
    6072
    6173  TAcronymCategory = class
     74    Id: Integer;
    6275    Name: string;
    6376    AcronymMeanings: TAcronymMeanings;
     77    procedure SaveToNode(Node: TDOMNode);
     78    procedure LoadFromNode(Node: TDOMNode);
    6479    constructor Create;
    6580    destructor Destroy; override;
     
    6984
    7085  TAcronymCategories = class(TObjectList)
     86    procedure UpdateIds;
     87    procedure SaveToNode(Node: TDOMNode);
     88    procedure LoadFromNode(Node: TDOMNode);
    7189    function SearchByName(Name: string): TAcronymCategory;
     90    function SearchById(Id: Integer): TAcronymCategory;
    7291    function AddContext(Name: string): TAcronymCategory;
    7392    procedure AssignToStrings(Strings: TStrings);
     
    98117    procedure LoadFromFile(FileName: string);
    99118    procedure SaveToFile(FileName: string);
     119    procedure LoadFromFileCSV(FileName: string);
     120    procedure SaveToFileCSV(FileName: string);
    100121    procedure FilterList(AName: string; Items: TAcronymMeanings);
    101122    function AddAcronym(AcronymName, MeaningName: string): TAcronymMeaning;
     
    105126function AcronymComparer(Item1, Item2: Pointer): Integer;
    106127
     128
    107129implementation
     130
     131resourcestring
     132  SWrongFileFormat = 'Wrong file format';
    108133
    109134function AcronymComparer(Item1, Item2: Pointer): Integer;
     
    126151
    127152{ TAcronymMeanings }
     153
     154procedure TAcronymMeanings.SaveToNode(Node: TDOMNode);
     155var
     156  I: Integer;
     157  NewNode2: TDOMNode;
     158begin
     159  for I := 0 to Count - 1 do
     160  with TAcronymMeaning(Items[I]) do begin
     161    NewNode2 := Node.OwnerDocument.CreateElement('Meaning');
     162    Node.AppendChild(NewNode2);
     163    SaveToNode(NewNode2);
     164  end;
     165end;
     166
     167procedure TAcronymMeanings.LoadFromNode(Node: TDOMNode);
     168var
     169  Node2: TDOMNode;
     170  NewItem: TAcronymMeaning;
     171begin
     172  Count := 0;
     173  Node2 := Node.FirstChild;
     174  while Assigned(Node2) and (Node2.NodeName = 'Meaning') do begin
     175    NewItem := TAcronymMeaning.Create;
     176    NewItem.Acronym := Acronym;
     177    NewItem.LoadFromNode(Node2);
     178    Add(NewItem);
     179    Node2 := Node2.NextSibling;
     180  end;
     181end;
    128182
    129183function TAcronymMeanings.SearchByName(Name: string): TAcronymMeaning;
     
    146200{ TAcronymMeaning }
    147201
     202procedure TAcronymMeaning.SaveToNode(Node: TDOMNode);
     203var
     204  NewNode: TDOMNode;
     205  NewNode2: TDOMNode;
     206  I: Integer;
     207begin
     208  WriteString(Node, 'Name', Name);
     209  WriteString(Node, 'Description', Description);
     210  WriteString(Node, 'Language', Language);
     211
     212  NewNode := Node.OwnerDocument.CreateElement('Categories');
     213  Node.AppendChild(NewNode);
     214  for I := 0 to Categories.Count - 1 do begin
     215    NewNode2 := NewNode.OwnerDocument.CreateElement('Category');
     216    NewNode.AppendChild(NewNode2);
     217    WriteInteger(NewNode2, 'Id', TAcronymCategory(Categories[I]).Id);
     218  end;
     219end;
     220
     221procedure TAcronymMeaning.LoadFromNode(Node: TDOMNode);
     222var
     223  Node2: TDOMNode;
     224  Node3: TDOMNode;
     225  Category: TAcronymCategory;
     226  Id: Integer;
     227begin
     228  Name := ReadString(Node, 'Name', '');
     229  Description := ReadString(Node, 'Description', '');
     230  Language := ReadString(Node, 'Language', '');
     231
     232  Node3 := Node.FindNode('Categories');
     233  if Assigned(Node3) then begin
     234    Node2 := Node3.FirstChild;
     235    while Assigned(Node2) and (Node2.NodeName = 'Category') do begin
     236      Id := ReadInteger(Node2, 'Id', 0);
     237      Category := Acronym.Db.Categories.SearchById(Id);
     238      if Assigned(Category) then begin
     239        Categories.Add(Category);
     240        Category.AcronymMeanings.Add(Self);
     241      end;
     242      Node2 := Node2.NextSibling;
     243    end;
     244  end;
     245end;
     246
    148247constructor TAcronymMeaning.Create;
    149248begin
     
    163262{ TAcronyms }
    164263
     264procedure TAcronyms.SaveToNode(Node: TDOMNode);
     265var
     266  I: Integer;
     267  NewNode2: TDOMNode;
     268begin
     269  for I := 0 to Count - 1 do
     270  with TAcronym(Items[I]) do begin
     271    NewNode2 := Node.OwnerDocument.CreateElement('Acronym');
     272    Node.AppendChild(NewNode2);
     273    SaveToNode(NewNode2);
     274  end;
     275end;
     276
     277procedure TAcronyms.LoadFromNode(Node: TDOMNode);
     278var
     279  Node2: TDOMNode;
     280  NewItem: TAcronym;
     281begin
     282  Count := 0;
     283  Node2 := Node.FirstChild;
     284  while Assigned(Node2) and (Node2.NodeName = 'Acronym') do begin
     285    NewItem := TAcronym.Create;
     286    NewItem.Db := Db;
     287    NewItem.LoadFromNode(Node2);
     288    Add(NewItem);
     289    Node2 := Node2.NextSibling;
     290  end;
     291end;
     292
    165293function TAcronyms.SearchByName(Name: string): TAcronym;
    166294var
     
    182310{ TAcronymCategories }
    183311
     312procedure TAcronymCategories.UpdateIds;
     313var
     314  LastId: Integer;
     315  I: Integer;
     316begin
     317  // Get highest used ID
     318  LastId := 0;
     319  for I := 0 to Count - 1 do begin
     320    if TAcronymCategory(Items[I]).Id > LastId then LastId := TAcronymCategory(Items[I]).Id;
     321  end;
     322  // Add ID to new items without ID
     323  for I := 0 to Count - 1 do begin
     324    if TAcronymCategory(Items[I]).Id = 0 then begin
     325      Inc(LastId);
     326      TAcronymCategory(Items[I]).Id := LastId;
     327    end;
     328  end;
     329end;
     330
     331procedure TAcronymCategories.SaveToNode(Node: TDOMNode);
     332var
     333  I: Integer;
     334  NewNode2: TDOMNode;
     335begin
     336  UpdateIds;
     337  for I := 0 to Count - 1 do
     338  with TAcronymCategory(Items[I]) do begin
     339    NewNode2 := Node.OwnerDocument.CreateElement('Category');
     340    Node.AppendChild(NewNode2);
     341    SaveToNode(NewNode2);
     342  end;
     343end;
     344
     345procedure TAcronymCategories.LoadFromNode(Node: TDOMNode);
     346var
     347  Node2: TDOMNode;
     348  NewItem: TAcronymCategory;
     349begin
     350  Count := 0;
     351  Node2 := Node.FirstChild;
     352  while Assigned(Node2) and (Node2.NodeName = 'Category') do begin
     353    NewItem := TAcronymCategory.Create;
     354    NewItem.LoadFromNode(Node2);
     355    Add(NewItem);
     356    Node2 := Node2.NextSibling;
     357  end;
     358  UpdateIds;
     359end;
     360
    184361function TAcronymCategories.SearchByName(Name: string): TAcronymCategory;
    185362var
     
    192369end;
    193370
     371function TAcronymCategories.SearchById(Id: Integer): TAcronymCategory;
     372var
     373  I: Integer;
     374begin
     375  I := 0;
     376  while (I < Count) and (TAcronymCategory(Items[I]).Id <> Id) do Inc(I);
     377  if I < Count then Result := TAcronymCategory(Items[I])
     378    else Result := nil;
     379end;
     380
    194381function TAcronymCategories.AddContext(Name: string): TAcronymCategory;
    195382begin
     
    221408{ TAcronym }
    222409
     410procedure TAcronym.SaveToNode(Node: TDOMNode);
     411var
     412  NewNode: TDOMNode;
     413begin
     414  WriteString(Node, 'Name', Name);
     415
     416  NewNode := Node.OwnerDocument.CreateElement('Meanings');
     417  Node.AppendChild(NewNode);
     418  Meanings.SaveToNode(NewNode);
     419end;
     420
     421procedure TAcronym.LoadFromNode(Node: TDOMNode);
     422var
     423  NewNode: TDOMNode;
     424begin
     425  Name := ReadString(Node, 'Name', '');
     426
     427  NewNode := Node.FindNode('Meanings');
     428  if Assigned(NewNode) then
     429    Meanings.LoadFromNode(NewNode);
     430end;
     431
    223432constructor TAcronym.Create;
    224433begin
    225434  Meanings := TAcronymMeanings.Create;
     435  Meanings.Acronym := Self;
    226436end;
    227437
     
    233443
    234444{ TAcronymCategory }
     445
     446procedure TAcronymCategory.SaveToNode(Node: TDOMNode);
     447begin
     448  WriteString(Node, 'Name', Name);
     449  WriteInteger(Node, 'Id', Id);
     450end;
     451
     452procedure TAcronymCategory.LoadFromNode(Node: TDOMNode);
     453begin
     454  Name := ReadString(Node, 'Name', '');
     455  Id := ReadInteger(Node, 'Id', 0);
     456end;
    235457
    236458constructor TAcronymCategory.Create;
     
    255477  Sources := TAcronymSources.Create;
    256478  Acronyms := TAcronyms.Create;
     479  Acronyms.Db := Self;
    257480  Categories := TAcronymCategories.Create;
    258481end;
     
    267490
    268491procedure TAcronymDb.LoadFromFile(FileName: string);
     492var
     493  NewNode: TDOMNode;
     494  Doc: TXMLDocument;
     495  RootNode: TDOMNode;
     496begin
     497  if ExtractFileExt(FileName) = '.csv' then begin
     498    LoadFromFileCSV(FileName);
     499    Exit;
     500  end;
     501  Self.FileName := FileName;
     502  ReadXMLFile(Doc, FileName);
     503  with Doc do try
     504    if Doc.DocumentElement.NodeName <> 'AcronymDecoderProject' then
     505      raise Exception.Create(SWrongFileFormat);
     506    RootNode := Doc.DocumentElement;
     507    with RootNode do begin
     508      NewNode := FindNode('Categories');
     509      if Assigned(NewNode) then
     510        Categories.LoadFromNode(NewNode);
     511
     512      // Load acronyms after categories because of references
     513      NewNode := FindNode('Acronyms');
     514      if Assigned(NewNode) then
     515        Acronyms.LoadFromNode(NewNode);
     516    end;
     517  finally
     518    Doc.Free;
     519  end;
     520end;
     521
     522procedure TAcronymDb.SaveToFile(FileName: string);
     523var
     524  NewNode: TDOMNode;
     525  Doc: TXMLDocument;
     526  RootNode: TDOMNode;
     527begin
     528  if ExtractFileExt(FileName) = '.csv' then begin
     529    SaveToFileCSV(FileName);
     530    Exit;
     531  end;
     532  Self.FileName := FileName;
     533  Doc := TXMLDocument.Create;
     534  with Doc do try
     535    RootNode := CreateElement('AcronymDecoderProject');
     536    AppendChild(RootNode);
     537    with RootNode do begin
     538      NewNode := OwnerDocument.CreateElement('Categories');
     539      AppendChild(NewNode);
     540      Categories.SaveToNode(NewNode);
     541
     542      // Save acronyms after categories because of references
     543      NewNode := OwnerDocument.CreateElement('Acronyms');
     544      AppendChild(NewNode);
     545      Acronyms.SaveToNode(NewNode);
     546    end;
     547    ForceDirectories(ExtractFileDir(FileName));
     548    WriteXMLFile(Doc, FileName);
     549  finally
     550    Doc.Free;
     551  end;
     552  Modified := False;
     553end;
     554
     555procedure TAcronymDb.LoadFromFileCSV(FileName: string);
    269556var
    270557  F: TStringList;
     
    321608end;
    322609
    323 procedure TAcronymDb.SaveToFile(FileName: string);
     610procedure TAcronymDb.SaveToFileCSV(FileName: string);
    324611var
    325612  I: Integer;
  • trunk/UFormMain.pas

    r14 r15  
    9797    FoundAcronyms: TAcronymMeanings;
    9898    RegistryContext: TRegistryContext;
     99    ProjectClosed: Boolean;
    99100    procedure OpenRecentClick(Sender: TObject);
    100101    procedure UpdateAcronymsList;
     
    146147procedure TFormMain.FormClose(Sender: TObject; var CloseAction: TCloseAction);
    147148begin
    148   AFileClose.Execute;
    149149  PersistentForm1.Save(Self);
    150150  SaveConfig;
     
    152152
    153153procedure TFormMain.FormCloseQuery(Sender: TObject; var CanClose: boolean);
     154begin
     155  AFileClose.Execute;
     156  CanClose := ProjectClosed;
     157end;
     158
     159procedure TFormMain.AExitExecute(Sender: TObject);
     160begin
     161  Close;
     162end;
     163
     164procedure TFormMain.AFileCloseExecute(Sender: TObject);
    154165var
    155166  ModalResult: TModalResult;
     
    160171    if ModalResult = mrYes then begin
    161172      AFileSave.Execute;
    162       CanClose := True;
     173      FreeAndNil(AcronymDb);
     174      UpdateAcronymsList;
     175      UpdateInterface;
     176      ProjectClosed := True;
    163177    end
    164178    else if ModalResult = mrNo then begin
    165       CanClose := True;
    166       AcronymDb.Modified := False;
    167     end else CanClose := False;
    168   end;
    169 end;
    170 
    171 procedure TFormMain.AExitExecute(Sender: TObject);
    172 begin
    173   Close;
    174 end;
    175 
    176 procedure TFormMain.AFileCloseExecute(Sender: TObject);
    177 begin
    178   if Assigned(AcronymDb) then begin
    179     if AcronymDb.Modified then AFileSave.Execute;
    180     FreeAndNil(AcronymDb);
     179      FreeAndNil(AcronymDb);
     180      UpdateAcronymsList;
     181      UpdateInterface;
     182      ProjectClosed := True;
     183    end else ProjectClosed := False;
     184  end else ProjectClosed := True;
     185end;
     186
     187procedure TFormMain.AFileNewExecute(Sender: TObject);
     188begin
     189  AFileClose.Execute;
     190  if ProjectClosed  then begin
     191    AcronymDb := TAcronymDb.Create;
     192    AcronymDb.FileName := DefaultFileName;
     193    AcronymDb.Acronyms.Clear;
    181194    UpdateAcronymsList;
    182195    UpdateInterface;
    183196  end;
    184 end;
    185 
    186 procedure TFormMain.AFileNewExecute(Sender: TObject);
    187 begin
    188   AFileClose.Execute;
    189   AcronymDb := TAcronymDb.Create;
    190   AcronymDb.FileName := DefaultFileName;
    191   AcronymDb.Acronyms.Clear;
    192   UpdateAcronymsList;
    193   UpdateInterface;
    194197end;
    195198
     
    201204  if OpenDialog1.Execute then begin
    202205    AFileClose.Execute;
    203     AFileNew.Execute;
    204     AcronymDb.LoadFromFile(OpenDialog1.FileName);
    205     LastOpenedList1.AddItem(OpenDialog1.FileName);
    206     UpdateAcronymsList;
    207     UpdateInterface;
     206    if ProjectClosed then begin
     207      AFileNew.Execute;
     208      AcronymDb.LoadFromFile(OpenDialog1.FileName);
     209      LastOpenedList1.AddItem(OpenDialog1.FileName);
     210      UpdateAcronymsList;
     211      UpdateInterface;
     212    end;
    208213  end;
    209214end;
     
    333338begin
    334339  FormCategories.ShowModal;
     340  UpdateAcronymsList;
     341  UpdateInterface;
    335342end;
    336343
     
    424431begin
    425432  AFileClose.Execute;
    426   AFileNew.Execute;
    427   AcronymDb.LoadFromFile(TMenuItem(Sender).Caption);
    428   LastOpenedList1.AddItem(TMenuItem(Sender).Caption);
    429   UpdateAcronymsList;
    430   UpdateInterface;
     433  if ProjectClosed then begin
     434    AFileNew.Execute;
     435    AcronymDb.LoadFromFile(TMenuItem(Sender).Caption);
     436    LastOpenedList1.AddItem(TMenuItem(Sender).Caption);
     437    UpdateAcronymsList;
     438    UpdateInterface;
     439  end;
    431440end;
    432441
Note: See TracChangeset for help on using the changeset viewer.