Book a Demo

Author Topic: Copy elements in Browser  (Read 3986 times)

GTM

  • EA Novice
  • *
  • Posts: 16
  • Karma: +0/-0
    • View Profile
Copy elements in Browser
« on: March 11, 2006, 05:06:21 pm »
I wonder how to let's say copy a bunch of classes from one package to another, without  a diagram. The "Paste as new" is always greyed out in this case.
Why - and more important - how ?

Thanks for any hints.

thomaskilian

  • Guest
Re: Copy elements in Browser
« Reply #1 on: March 12, 2006, 06:40:38 am »
I have created a little transformation. This is probably the best way since you can deal with connectors as necessary.

GTM

  • EA Novice
  • *
  • Posts: 16
  • Karma: +0/-0
    • View Profile
Re: Copy elements in Browser
« Reply #2 on: March 12, 2006, 09:23:35 am »
Seems there is room for improvement. Maybe I'm a bit too spoiled here from other tools... (ok, $$$)
Would you dare to share ? - Thanks.

thomaskilian

  • Guest
Re: Copy elements in Browser
« Reply #3 on: March 12, 2006, 10:34:59 am »
It's not real rocket science. I once copied it from the C# template or something alike. You will find that it does not copy everything but it should be easy to extend. Save the following as xml-file and use import reference data inside EA. You will have a Duplicate template then.
Code: [Select]

<?xml version="1.0" encoding="windows-1252"?>
<RefData version="1.0" exporter="EA.25">
<DataSet name="Duplicate_Transform_Template" table="t_template" filter="TemplateType='#TemplateType#' and TemplateName='#TemplateName#' and Style='#Style#'">

<DataRow>


<Column name="TemplateID" value="{BC474B33-1506-49d5-A3A1-18CCC03FBA9C}"/>


<Column name="TemplateType" value="Duplicate_Transform_Template"/>


<Column name="TemplateName" value="File"/>


<Column name="Template" value="Package&#xA;{&#xA;  name=&quot;Duplicate&quot;&#xA;  namespaceroot=&quot;true&quot;&#xA;%list=&quot;Namespace&quot; @separator=&quot;\n\n&quot; @indent=&quot;  &quot;%&#xA;}"/>

</DataRow>


<DataRow>


<Column name="TemplateID" value="{E26CEA53-E4B4-4669-922F-0EE935000A4B}"/>


<Column name="TemplateType" value="Duplicate_Transform_Template"/>


<Column name="TemplateName" value="Namespace"/>


<Column name="Template" value="%if packagePath == &quot;&quot;%&#xA;%list=&quot;Namespace&quot; @separator=&quot;\n&quot;%&#xA;%list=&quot;Class&quot; @separator=&quot;\n&quot;%&#xA;%endTemplate%&#xA;&#xA;Package&#xA;{&#xA;  %TRANSFORM_CURRENT()%&#xA;%list=&quot;Namespace&quot; @separator=&quot;\n&quot; @indent=&quot;  &quot;%&#xA;%list=&quot;Class&quot; @separator=&quot;\n&quot; @indent=&quot;  &quot;%&#xA;}"/>

</DataRow>


<DataRow>


<Column name="TemplateID" value="{3940E821-0C28-4223-A549-4ECE09A16B22}"/>


<Column name="TemplateType" value="Duplicate_Transform_Template"/>


<Column name="TemplateName" value="Class"/>


<Column name="Template" value="%if elemType != &quot;Class&quot; and elemType != &quot;Interface&quot;%&#xA;%endTemplate%&#xA;&#xA;%elemType%&#xA;{&#xA;  %TRANSFORM_REFERENCE(&quot;Class&quot;)%&#xA;  %TRANSFORM_CURRENT(&quot;language&quot;)%&#xA;  language=%qt%%classLanguage%%qt%&#xA;%list=&quot;ClassBase&quot; @separator=&quot;\n&quot; @indent=&quot;  &quot;%&#xA;%list=&quot;ClassInterface&quot; @separator=&quot;\n&quot; @indent=&quot;  &quot;%&#xA;%list=&quot;InnerClass&quot; @separator=&quot;\n&quot; @indent=&quot;  &quot;%&#xA;%if elemType==&quot;Class&quot;%&#xA;%list=&quot;Attribute&quot; @separator=&quot;\n&quot; @indent=&quot;  &quot;%&#xA;%endIf%&#xA;%list=&quot;Operation&quot; @separator=&quot;\n&quot; @indent=&quot;  &quot;%&#xA;}&#xA;%list=&quot;Connector&quot; @separator=&quot;\n&quot;%"/>

</DataRow>


<DataRow>


<Column name="TemplateID" value="{1FF546D5-AB09-426f-9050-372F745A25B6}"/>


<Column name="TemplateType" value="Duplicate_Transform_Template"/>


<Column name="TemplateName" value="Class Base"/>


<Column name="Template" value="Parent&#xA;{&#xA;  name=%qt%%classBaseName%%qt%&#xA;  type=&quot;Parent&quot;&#xA;}"/>

</DataRow>


<DataRow>


<Column name="TemplateID" value="{3F05BD71-4881-4e73-91D9-1306142ABA08}"/>


<Column name="TemplateType" value="Duplicate_Transform_Template"/>


<Column name="TemplateName" value="Class Interface"/>


<Column name="Template" value="Parent&#xA;{&#xA;  name=%qt%%classBaseName%%qt%&#xA;  type=&quot;Implements&quot;&#xA;}"/>

</DataRow>


<DataRow>


<Column name="TemplateID" value="{07D0E331-A480-4ba7-8A2D-50B50D1898AB}"/>


<Column name="TemplateType" value="Duplicate_Transform_Template"/>


<Column name="TemplateName" value="Attribute"/>


<Column name="Template" value="Attribute&#xA;{&#xA;  %TRANSFORM_REFERENCE()%&#xA;  %TRANSFORM_CURRENT(&quot;scope&quot;,&quot;type&quot;)%&#xA;  scope=%qt%%attScope == &quot;Public&quot; ? &quot;Private&quot; : value%%qt%&#xA;  type=%qt%%CONVERT_TYPE(&quot;C#&quot;,attType)%%qt%&#xA;}"/>

</DataRow>


<DataRow>


<Column name="TemplateID" value="{C295E53F-E825-4dd3-8625-5D2FFAB538CB}"/>


<Column name="TemplateType" value="Duplicate_Transform_Template"/>


<Column name="TemplateName" value="Operation"/>


<Column name="Template" value="Operation&#xA;{&#xA;  %TRANSFORM_REFERENCE()%&#xA;  %TRANSFORM_CURRENT(&quot;code&quot;)%&#xA;$sqt=%qt%&#xA;$bsl=%LEFT(&quot;\\&quot;,1)%&#xA;$dqt=$bsl+$sqt&#xA;$nl=&quot;\n&quot;&#xA;$nlx=$sqt+&quot;+&quot;+$bsl+&quot;n+&quot;+$sqt&#xA;$code=%REPLACE(opCode,$sqt,$dqt)%&#xA;$code=%REPLACE($code,$nl,$nlx)%&#xA;  code=%qt%$code%qt%&#xA;%list=&quot;Parameter&quot; @separator=&quot;\n&quot; @indent=&quot;  &quot;%&#xA;}"/>

</DataRow>


<DataRow>


<Column name="TemplateID" value="{ECBDC804-9968-4eca-8210-4038C7D596F0}"/>


<Column name="TemplateType" value="Duplicate_Transform_Template"/>


<Column name="TemplateName" value="Parameter"/>


<Column name="Template" value="Parameter&#xA;{&#xA;  %TRANSFORM_CURRENT(&quot;type&quot;)%&#xA;  type=%qt%%CONVERT_TYPE(&quot;C#&quot;,paramType)%%qt%&#xA;}"/>

</DataRow>


<DataRow>


<Column name="TemplateID" value="{41E12AFF-E7EA-43ae-A933-4C77F08C08CD}"/>


<Column name="TemplateType" value="Duplicate_Transform_Template"/>


<Column name="TemplateName" value="Connector"/>


<Column name="Template" value="%if connectorType==&quot;Dependency&quot;%&#xA;%endTemplate%&#xA;&#xA;%connectorType%&#xA;%PI=&quot;\n  &quot;%&#xA;{&#xA;%TRANSFORM_CURRENT()%&#xA;%TRANSFORM_REFERENCE(&quot;Connector&quot;,connectorGUID)%&#xA;Source&#xA;{&#xA;%TRANSFORM_REFERENCE(&quot;Class&quot;,connectorSourceElemGUID)%&#xA;%TRANSFORM_CURRENT(&quot;Source&quot;)%&#xA;}&#xA;Target&#xA;{&#xA;%TRANSFORM_REFERENCE(&quot;Class&quot;,connectorDestElemGUID)%&#xA;%TRANSFORM_CURRENT(&quot;Target&quot;)%&#xA;%PI=&quot;\n&quot;%&#xA;}&#xA;}"/>

</DataRow>

</DataSet>
</RefData>

GTM

  • EA Novice
  • *
  • Posts: 16
  • Karma: +0/-0
    • View Profile
Re: Copy elements in Browser
« Reply #4 on: March 12, 2006, 12:54:56 pm »
Thanks, Thomas, works for me.

BTW, the import had some problems because of the line breaks of the posted xml. Is there any possibility to attach files to a post to avoid such problems? Or is there another place to share such things?

Thanks again!

thomaskilian

  • Guest
Re: Copy elements in Browser
« Reply #5 on: March 12, 2006, 10:34:58 pm »
No. I could have placed it on EA Usergroup, though. Let's see - I probably have to ask Bruno for my lost password :-[