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());
}
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;
}
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();
}
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());
}
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());
}
Aggregations