Search in sources :

Example 1 with Diagram

use of org.tmdmaker.core.model.Diagram in project tmdmaker by tmdmaker.

the class VirtualSupersetTypeEditPart method getCommand.

/**
 * {@inheritDoc}
 *
 * @see org.eclipse.gef.editparts.AbstractEditPart#getCommand(org.eclipse.gef.Request)
 */
@Override
public Command getCommand(Request request) {
    if (!REQ_OPEN.equals(request.getType()))
        return super.getCommand(request);
    VirtualSupersetType type = getModel();
    VirtualSuperset superset = type.getSuperset();
    Diagram diagram = superset.getDiagram();
    List<AbstractEntityModel> list = type.getSubsetList();
    VirtualSupersetCreateDialog dialog = new VirtualSupersetCreateDialog(getViewer().getControl().getShell(), diagram, superset, list);
    if (dialog.open() != Dialog.OK)
        return null;
    return new VirtualSupersetEditCommand(superset, dialog.getEditedValue(), dialog.getSelection(), dialog.getEditedAggregator().isApplyAttribute());
}
Also used : VirtualSupersetType(org.tmdmaker.core.model.VirtualSupersetType) VirtualSupersetCreateDialog(org.tmdmaker.ui.dialogs.VirtualSupersetCreateDialog) VirtualSuperset(org.tmdmaker.core.model.VirtualSuperset) VirtualSupersetEditCommand(org.tmdmaker.ui.editor.gef3.commands.VirtualSupersetEditCommand) AbstractEntityModel(org.tmdmaker.core.model.AbstractEntityModel) Diagram(org.tmdmaker.core.model.Diagram)

Example 2 with Diagram

use of org.tmdmaker.core.model.Diagram in project tmdmaker by tmdmaker.

the class GeneratorHandler method execute.

/**
 * {@inheritDoc}
 *
 * @see GeneratorHandler#execute(ExecutionEvent)
 */
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    ISelection selection = HandlerUtil.getCurrentSelection(event);
    if (selection instanceof IStructuredSelection) {
        IFile file = getSelectionFile((IStructuredSelection) selection);
        if (file == null) {
            return null;
        }
        try {
            Diagram diagram = SerializerFactory.getInstance().deserialize(file.getContents());
            String path = getAbsolutePath(file);
            generator.execute(path, diagram.query().listEntityModel());
            new Workspace().refreshGenerateResources(path);
        } catch (CoreException e) {
            Activator.showErrorDialog(e);
        } catch (Exception e) {
            Activator.showErrorDialog(e);
        }
    }
    return null;
}
Also used : IFile(org.eclipse.core.resources.IFile) CoreException(org.eclipse.core.runtime.CoreException) ISelection(org.eclipse.jface.viewers.ISelection) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) CoreException(org.eclipse.core.runtime.CoreException) ExecutionException(org.eclipse.core.commands.ExecutionException) Diagram(org.tmdmaker.core.model.Diagram) Workspace(org.tmdmaker.ui.editor.workspace.Workspace)

Example 3 with Diagram

use of org.tmdmaker.core.model.Diagram in project tmdmaker by tmdmaker.

the class EditPartFactoryTest method setUp.

/**
 * @throws java.lang.Exception
 */
@Before
public void setUp() throws Exception {
    diagram = new Diagram();
    e1 = Entity.ofEvent(new Identifier("テスト1番号")).withDefaultAttribute();
    diagram.addChild(e1);
    e2 = Entity.ofEvent(new Identifier("テスト2番号")).withDefaultAttribute();
    diagram.addChild(e2);
    r1 = Entity.ofResource(new Identifier("テスト1No")).withDefaultAttribute();
    diagram.addChild(r1);
    r2 = Entity.ofResource(new Identifier("テスト2No")).withDefaultAttribute();
    diagram.addChild(r2);
    factory = new TMDEditPartFactory();
    // subsetType = new SubsetType();
    // subsetType.setExceptNull(false);
    // subsetType.setSubsetType(SubsetTypeValue.SAME);
    // diagram.addChild(subsetType);
    List<AbstractEntityModel> list = new ArrayList<AbstractEntityModel>();
    list.add(e1);
    list.add(e2);
    vsp = VirtualSuperset.of(new ModelName("スーパーセット"));
    vsp.virtualSubsets().builder().subsetList(list).build();
    vtype = vsp.getVirtualSupersetType();
}
Also used : Identifier(org.tmdmaker.core.model.Identifier) ModelName(org.tmdmaker.core.model.parts.ModelName) ArrayList(java.util.ArrayList) TMDEditPartFactory(org.tmdmaker.ui.editor.gef3.editparts.TMDEditPartFactory) AbstractEntityModel(org.tmdmaker.core.model.AbstractEntityModel) Diagram(org.tmdmaker.core.model.Diagram) Before(org.junit.Before)

Example 4 with Diagram

use of org.tmdmaker.core.model.Diagram in project tmdmaker by tmdmaker.

the class EditPartFactoryTest method testCreateEditPart.

/**
 * Test method for
 * {@link org.tmdmaker.ui.editor.gef3.editparts.TMDEditPartFactory#createEditPart(org.eclipse.gef.EditPart, java.lang.Object)}
 * .
 */
@Test
public void testCreateEditPart() {
    Object o = new Attribute();
    EditPart editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(AttributeEditPart.class));
    AbstractRelationship r = Relationship.of(r1, r2);
    r.connect();
    o = r.getTable();
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(CombinationTableEditPart.class));
    Entity res1 = Entity.ofResource(new Identifier("リソース番号"));
    Entity ev1 = Entity.ofEvent(new Identifier("イベント番号"));
    AbstractRelationship rel = Relationship.of(res1, ev1);
    rel.connect();
    rel.setSourceCardinality(Cardinality.MANY);
    rel.setTargetCardinality(Cardinality.MANY);
    ev1.multivalueAnd().builder().build();
    o = ev1.multivalueAnd().detail();
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(DetailEditPart.class));
    o = new Diagram();
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(DiagramEditPart.class));
    o = Entity.ofResource(new ModelName("個体"), new Identifier("番号"));
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(EntityEditPart.class));
    o = Laputa.of();
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(LaputaEditPart.class));
    o = new MappingList();
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(MappingListEditPart.class));
    o = ev1.multivalueAnd().superset();
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(MultivalueAndSupersetEditPart.class));
    Entity ev2 = Entity.ofEvent(new Identifier("イベント番号"));
    ev2.multivalueOr().builder().typeName("テスト種別").build();
    o = ev2.multivalueOr().query().findByName(new ModelName("イベント.テスト種別")).get(0);
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(MultivalueOrEditPart.class));
    o = new RecursiveTable();
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(RecursiveTableEditPart.class));
    Entity e = Entity.ofResource(new Identifier("親ID"));
    e.subsets().builder().add(new ModelName("サブセット")).build();
    o = e.subsets().query().findByName(new ModelName("サブセット")).get(0);
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(SubsetEntityEditPart.class));
    ModelName searchName = new ModelName("みなし");
    e.virtualEntities().builder().virtualEntityName(searchName).build();
    o = e.virtualEntities().query().findByName(searchName).get(0);
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(VirtualEntityEditPart.class));
    o = VirtualSuperset.of(new ModelName("スーパーセット"));
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(VirtualSupersetEditPart.class));
    o = new RecursiveRelationship(e1);
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(RecursiveRelationshipEditPart.class));
    o = new Event2EventRelationship(e1, e2);
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(RelationshipEditPart.class));
    Entity2SubsetTypeRelationship r1 = new Entity2SubsetTypeRelationship(e1);
    r1.connect();
    editPart = factory.createEditPart(null, r1);
    assertThat(editPart, instanceOf(Entity2SubsetTypeRelationshipEditPart.class));
    o = (Entity2VirtualSupersetTypeRelationship) vtype.getModelTargetConnections().get(0);
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(RelatedRelationshipEditPart.class));
    o = ev1.multivalueAnd().aggregator();
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(MultivalueAndAggregatorEditPart.class));
    o = new RelatedRelationship(e1, e2);
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(RelatedRelationshipEditPart.class));
    Entity2SubsetTypeRelationship r2 = new Entity2SubsetTypeRelationship(null);
    editPart = factory.createEditPart(null, r2.getSubsetType());
    assertThat(editPart, instanceOf(SubsetTypeEditPart.class));
    o = vtype;
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, instanceOf(VirtualSupersetTypeEditPart.class));
    o = new ModelElement();
    editPart = factory.createEditPart(null, o);
    assertThat(editPart, nullValue());
// TODO 必要になったらaccept(IVisitor)メソッドをIdentifierRefでoverrideする
// o = new IdentifierRef(e1.getIdentifier());
// editPart = factory.createEditPart(null, o);
// assertThat(editPart, nullValue());
// TODO 必要になったらaccept(IVisitor)メソッドをIdentifierでoverrideする
// Identifier i = e1.getIdentifier();
// editPart = factory.createEditPart(null, i);
// assertThat(editPart, nullValue());
}
Also used : RecursiveRelationshipEditPart(org.tmdmaker.ui.editor.gef3.editparts.relationship.RecursiveRelationshipEditPart) Entity(org.tmdmaker.core.model.Entity) LaputaEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.LaputaEditPart) MultivalueOrEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.MultivalueOrEditPart) RecursiveRelationship(org.tmdmaker.core.model.RecursiveRelationship) Attribute(org.tmdmaker.core.model.Attribute) Entity2SubsetTypeRelationship(org.tmdmaker.core.model.Entity2SubsetTypeRelationship) VirtualSupersetTypeEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.VirtualSupersetTypeEditPart) SubsetEntityEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.SubsetEntityEditPart) ModelElement(org.tmdmaker.core.model.ModelElement) RecursiveTableEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.RecursiveTableEditPart) Identifier(org.tmdmaker.core.model.Identifier) Event2EventRelationship(org.tmdmaker.core.model.Event2EventRelationship) RecursiveTable(org.tmdmaker.core.model.RecursiveTable) EntityEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.EntityEditPart) SubsetEntityEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.SubsetEntityEditPart) VirtualEntityEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.VirtualEntityEditPart) MultivalueAndAggregatorEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.MultivalueAndAggregatorEditPart) SubsetTypeEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.SubsetTypeEditPart) MultivalueAndSupersetEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.MultivalueAndSupersetEditPart) VirtualEntityEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.VirtualEntityEditPart) MappingListEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.MappingListEditPart) ModelName(org.tmdmaker.core.model.parts.ModelName) AbstractRelationship(org.tmdmaker.core.model.AbstractRelationship) DetailEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.DetailEditPart) DiagramEditPart(org.tmdmaker.ui.editor.gef3.editparts.DiagramEditPart) MultivalueOrEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.MultivalueOrEditPart) MultivalueAndAggregatorEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.MultivalueAndAggregatorEditPart) RelationshipEditPart(org.tmdmaker.ui.editor.gef3.editparts.relationship.RelationshipEditPart) Entity2SubsetTypeRelationshipEditPart(org.tmdmaker.ui.editor.gef3.editparts.relationship.Entity2SubsetTypeRelationshipEditPart) AttributeEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.AttributeEditPart) RecursiveRelationshipEditPart(org.tmdmaker.ui.editor.gef3.editparts.relationship.RecursiveRelationshipEditPart) RelatedRelationshipEditPart(org.tmdmaker.ui.editor.gef3.editparts.relationship.RelatedRelationshipEditPart) VirtualSupersetEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.VirtualSupersetEditPart) EntityEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.EntityEditPart) MultivalueAndSupersetEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.MultivalueAndSupersetEditPart) EditPart(org.eclipse.gef.EditPart) MappingListEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.MappingListEditPart) SubsetEntityEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.SubsetEntityEditPart) SubsetTypeEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.SubsetTypeEditPart) CombinationTableEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.CombinationTableEditPart) RecursiveTableEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.RecursiveTableEditPart) VirtualEntityEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.VirtualEntityEditPart) LaputaEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.LaputaEditPart) VirtualSupersetTypeEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.VirtualSupersetTypeEditPart) MappingList(org.tmdmaker.core.model.MappingList) Entity2SubsetTypeRelationshipEditPart(org.tmdmaker.ui.editor.gef3.editparts.relationship.Entity2SubsetTypeRelationshipEditPart) RelatedRelationshipEditPart(org.tmdmaker.ui.editor.gef3.editparts.relationship.RelatedRelationshipEditPart) Diagram(org.tmdmaker.core.model.Diagram) CombinationTableEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.CombinationTableEditPart) AttributeEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.AttributeEditPart) DiagramEditPart(org.tmdmaker.ui.editor.gef3.editparts.DiagramEditPart) RelationshipEditPart(org.tmdmaker.ui.editor.gef3.editparts.relationship.RelationshipEditPart) Entity2SubsetTypeRelationshipEditPart(org.tmdmaker.ui.editor.gef3.editparts.relationship.Entity2SubsetTypeRelationshipEditPart) RecursiveRelationshipEditPart(org.tmdmaker.ui.editor.gef3.editparts.relationship.RecursiveRelationshipEditPart) RelatedRelationshipEditPart(org.tmdmaker.ui.editor.gef3.editparts.relationship.RelatedRelationshipEditPart) VirtualSupersetEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.VirtualSupersetEditPart) RelatedRelationship(org.tmdmaker.core.model.RelatedRelationship) DetailEditPart(org.tmdmaker.ui.editor.gef3.editparts.node.DetailEditPart) Test(org.junit.Test)

Example 5 with Diagram

use of org.tmdmaker.core.model.Diagram in project tmdmaker by tmdmaker.

the class DiagramTest method testImplementEntityQuery.

@Test
public void testImplementEntityQuery() {
    Diagram diagram = new Diagram();
    assertEquals(0, diagram.query().listEntityModel().size());
    Entity e1 = Entity.ofEvent(new Identifier("テスト1番号")).withDefaultAttribute();
    Entity e2 = Entity.ofEvent(new Identifier("テスト2番号")).withDefaultAttribute();
    diagram.addChild(e1);
    diagram.addChild(e2);
    e2.setNotImplement(true);
    assertEquals(2, diagram.query().listEntityModel().size());
    assertEquals(1, diagram.query().implementModel().listEntityModel().size());
}
Also used : Entity(org.tmdmaker.core.model.Entity) Identifier(org.tmdmaker.core.model.Identifier) Diagram(org.tmdmaker.core.model.Diagram) Test(org.junit.Test)

Aggregations

Diagram (org.tmdmaker.core.model.Diagram)37 Identifier (org.tmdmaker.core.model.Identifier)23 Entity (org.tmdmaker.core.model.Entity)22 Test (org.junit.Test)21 ModelName (org.tmdmaker.core.model.parts.ModelName)15 AbstractEntityModel (org.tmdmaker.core.model.AbstractEntityModel)14 VirtualSuperset (org.tmdmaker.core.model.VirtualSuperset)11 ArrayList (java.util.ArrayList)8 VirtualSupersetType (org.tmdmaker.core.model.VirtualSupersetType)7 IFile (org.eclipse.core.resources.IFile)4 CoreException (org.eclipse.core.runtime.CoreException)4 Header2DetailRelationship (org.tmdmaker.core.model.Header2DetailRelationship)4 VirtualSubsetBuilder (org.tmdmaker.core.model.virtual.VirtualSubsetBuilder)4 SerializationException (org.tmdmaker.model.persistence.SerializationException)4 IFileEditorInput (org.eclipse.ui.IFileEditorInput)3 AbstractConnectionModel (org.tmdmaker.core.model.AbstractConnectionModel)3 AbstractRelationship (org.tmdmaker.core.model.AbstractRelationship)3 RelatedRelationship (org.tmdmaker.core.model.RelatedRelationship)3 ReusedIdentifier (org.tmdmaker.core.model.ReusedIdentifier)3 Serializer (org.tmdmaker.model.persistence.Serializer)3