use of eu.esdihumboldt.hale.common.align.model.impl.PropertyEntityDefinition in project hale by halestudio.
the class RegexAnalysisParameterPage method setDefaultData.
private void setDefaultData(Cell unfinishedCell) {
InstanceTestValues instanceTestValues = new InstanceTestValues();
Entity entity = CellUtil.getFirstEntity(unfinishedCell.getSource());
if (entity != null) {
EntityDefinition edef = entity.getDefinition();
if (edef instanceof PropertyEntityDefinition) {
PropertyEntityDefinition property = (PropertyEntityDefinition) edef;
Object object = instanceTestValues.get(property);
if (object != null) {
String sampleData = object.toString();
_inputText.setText(sampleData);
}
}
}
}
use of eu.esdihumboldt.hale.common.align.model.impl.PropertyEntityDefinition in project hale by halestudio.
the class UserMigration method entityReplacement.
@Override
public Optional<EntityDefinition> entityReplacement(EntityDefinition entity, SimpleLog log) {
// use functionality from entity resolver
if (entity instanceof TypeEntityDefinition) {
EntityDefinition candidate = entity;
Type type = UserFallbackEntityResolver.resolveType((TypeEntityDefinition) entity, candidate, schemaSpace);
return Optional.ofNullable(type).map(e -> e.getDefinition());
} else if (entity instanceof PropertyEntityDefinition) {
EntityDefinition candidate = entity;
candidate = EntityCandidates.find((PropertyEntityDefinition) entity);
Property property = UserFallbackEntityResolver.resolveProperty((PropertyEntityDefinition) entity, candidate, schemaSpace);
return Optional.ofNullable(property).map(e -> e.getDefinition());
} else {
log.error("Unrecognised entity type: " + entity.getClass());
return Optional.empty();
}
}
use of eu.esdihumboldt.hale.common.align.model.impl.PropertyEntityDefinition in project hale by halestudio.
the class UserFallbackEntityResolver method resolveProperty.
/**
* Ask the user to select a replacement for a property.
*
* @param original the original entity
* @param candidate a candidate for the replacement
* @param schemaSpace the schema space
* @return the resolved property (may be the original)
*/
public static Property resolveProperty(PropertyEntityDefinition original, @Nullable EntityDefinition candidate, SchemaSpaceID schemaSpace) {
ResolveCache cache = getCache();
PropertyEntityDefinition replacement = cache.getReplacement(original);
if (replacement != null) {
// use cached replacement
return new DefaultProperty(replacement);
}
ProjectService ps = HaleUI.getServiceProvider().getService(ProjectService.class);
final AtomicBoolean canceled;
final AtomicBoolean skipped = new AtomicBoolean(false);
if (ps.getTemporaryProperty(RESOLVE_SKIP_PROPERTY, Value.of(false)).as(Boolean.class)) {
canceled = new AtomicBoolean(true);
} else {
canceled = new AtomicBoolean(false);
}
final AtomicReference<EntityDefinition> result = new AtomicReference<>();
if (!canceled.get()) {
PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {
@Override
public void run() {
PropertyEntityResolverDialog dlg = new PropertyEntityResolverDialog(Display.getCurrent().getActiveShell(), schemaSpace, null, "Cell entity could not be resolved", candidate) {
@Override
public void create() {
super.create();
openTray(new ViewerEntityTray(original));
}
};
switch(dlg.open()) {
case Window.OK:
result.set(dlg.getObject());
break;
case Window.CANCEL:
// Don't try to resolve further entities
ps.setTemporaryProperty(RESOLVE_SKIP_PROPERTY, Value.of(true));
canceled.set(true);
break;
case PropertyEntityResolverDialog.SKIP:
// skip this entity
skipped.set(true);
break;
default:
canceled.set(true);
}
}
});
}
EntityDefinition def = result.get();
if (canceled.get() || skipped.get()) {
// return the original so the cell is not lost
return new DefaultProperty(original);
} else if (def == null) {
// caller must take care about this
return null;
} else {
PropertyEntityDefinition propDef = (PropertyEntityDefinition) def;
cache.put(original, propDef);
return new DefaultProperty(propDef);
}
}
use of eu.esdihumboldt.hale.common.align.model.impl.PropertyEntityDefinition in project hale by halestudio.
the class GenericParameterPage method onShowPage.
/**
* @see HaleWizardPage#onShowPage(boolean)
*/
@Override
protected void onShowPage(boolean firstShow) {
Cell cell = getWizard().getUnfinishedCell();
// update variables as they could have changed
if (!AlignmentUtil.isTypeCell(cell)) {
Set<PropertyEntityDefinition> variables = new HashSet<PropertyEntityDefinition>();
for (Entity e : cell.getSource().values()) {
// Cell is no type cell, so entities are Properties.
variables.add(((Property) e).getDefinition());
}
for (Pair<AttributeEditor<?>, Button> pair : inputFields.values()) pair.getFirst().setVariables(variables);
}
updateState();
}
use of eu.esdihumboldt.hale.common.align.model.impl.PropertyEntityDefinition in project hale by halestudio.
the class MathEditor method createPropertyValues.
/**
* Returns an {@link Iterable} for the current variables for use with the
* {@link Script}.
*
* @return an {@link Iterable} for the current variables for use with the
* {@link Script}
*/
protected Iterable<PropertyValue> createPropertyValues() {
Collection<PropertyValue> result = new ArrayList<PropertyValue>(variables.size());
// using double results in no /0 exceptions because of stuff like
// 1/(a-b)
Double one = Double.valueOf(1);
for (PropertyEntityDefinition property : variables) result.add(new PropertyValueImpl(one, property));
return result;
}
Aggregations