use of com.revolsys.record.schema.RecordStore in project com.revolsys.open by revolsys.
the class RecordStoreLayer method newPropertiesTabGeneralPanelSource.
@Override
protected ValueField newPropertiesTabGeneralPanelSource(final BasePanel parent) {
final ValueField panel = super.newPropertiesTabGeneralPanelSource(parent);
final Map<String, String> connectionProperties = getProperty("connection");
String connectionName = null;
String url = null;
String user = null;
if (isExists()) {
final RecordStore recordStore = getRecordStore();
url = recordStore.getUrl();
user = recordStore.getUsername();
}
if (connectionProperties != null) {
connectionName = connectionProperties.get("name");
if (!isExists()) {
url = connectionProperties.get("url");
user = connectionProperties.get("user");
}
}
if (connectionName != null) {
SwingUtil.addLabelledReadOnlyTextField(panel, "Record Store Name", connectionName);
}
if (url != null) {
SwingUtil.addLabelledReadOnlyTextField(panel, "Record Store URL", url);
}
if (user != null) {
SwingUtil.addLabelledReadOnlyTextField(panel, "Record Store Username", user);
}
SwingUtil.addLabelledReadOnlyTextField(panel, "Type Path", this.typePath);
GroupLayouts.makeColumns(panel, 2, true);
return panel;
}
use of com.revolsys.record.schema.RecordStore in project com.revolsys.open by revolsys.
the class RecordStoreLayer method refreshDo.
@Override
protected void refreshDo() {
synchronized (getSync()) {
if (this.loadingWorker != null) {
this.loadingWorker.cancel(true);
}
this.loadedBoundingBox = BoundingBox.empty();
this.loadingBoundingBox = this.loadedBoundingBox;
super.refreshDo();
}
final RecordStore recordStore = getRecordStore();
final PathName pathName = getPathName();
final CodeTable codeTable = recordStore.getCodeTable(pathName);
if (codeTable != null) {
codeTable.refresh();
}
if (hasIdField()) {
final List<Identifier> identifiers = new ArrayList<>();
synchronized (getSync()) {
identifiers.addAll(this.recordsByIdentifier.keySet());
}
if (!identifiers.isEmpty()) {
identifiers.sort(Identifier.comparator());
final RecordDefinition recordDefinition = recordStore.getRecordDefinition(pathName);
final List<FieldDefinition> idFields = recordDefinition.getIdFields();
final int idFieldCount = idFields.size();
if (idFieldCount == 1) {
final FieldDefinition idField = idFields.get(0);
final int pageSize = 999;
final int identifierCount = identifiers.size();
for (int i = 0; i < identifiers.size(); i += pageSize) {
final List<Identifier> queryIdentifiers = identifiers.subList(i, Math.min(identifierCount, i + pageSize));
final In in = Q.in(idField, queryIdentifiers);
final Query query = new Query(recordDefinition, in);
updateCachedRecords(recordStore, query);
}
} else if (!idFields.isEmpty()) {
for (final Identifier identifier : identifiers) {
final Query query = new Query(recordDefinition, Q.equalId(idFields, identifier));
updateCachedRecords(recordStore, query);
}
}
}
}
}
use of com.revolsys.record.schema.RecordStore in project com.revolsys.open by revolsys.
the class RecordStoreConnectionTrees method addLayer.
private static void addLayer(final RecordDefinitionImpl recordDefinition) {
final PathName typePath = recordDefinition.getPathName();
final RecordStore recordStore = recordDefinition.getRecordStore();
final Map<String, Object> connection = recordStore.getConnectionProperties();
final Map<String, Object> layerConfig = new LinkedHashMap<>();
MapObjectFactory.setType(layerConfig, "recordStoreLayer");
layerConfig.put("name", recordDefinition.getName());
layerConfig.put("connection", connection);
layerConfig.put("typePath", typePath);
layerConfig.put("showTableView", AbstractLayer.isShowNewLayerTableView());
final LinkedList<String> path = new LinkedList<>();
{
BaseTreeNode node = BaseTree.getMenuNode();
node = node.getParent();
while (node != null) {
final Object nodeValue = node.getUserObject();
String nodeName = node.getName();
if (node instanceof PathTreeNode) {
nodeName = FileUtil.getBaseName(nodeName);
}
if (nodeValue instanceof RecordStoreSchemaElement) {
path.addFirst(nodeName);
node = node.getParent();
} else {
path.addFirst(nodeName);
node = null;
}
}
}
final AbstractLayer layer = new RecordStoreLayer(layerConfig);
LayerGroup layerGroup = Project.get();
for (final String name : path) {
try {
layerGroup = layerGroup.addLayerGroup(name);
} catch (final IllegalArgumentException e) {
int i = 1;
while (layerGroup.hasLayerWithSameName(null, name + i)) {
i++;
}
layerGroup = layerGroup.addLayerGroup(name + i);
}
}
layerGroup.addLayer(layer);
}
use of com.revolsys.record.schema.RecordStore in project com.revolsys.open by revolsys.
the class PathRecordStoreTreeNode method loadChildrenDo.
@Override
protected List<BaseTreeNode> loadChildrenDo() {
final RecordStore recordStore = getRecordStore();
if (recordStore != null) {
final RecordStoreSchema schema = recordStore.getRootSchema();
if (schema != null) {
schema.refresh();
final List<BaseTreeNode> children = new ArrayList<>();
for (final RecordStoreSchemaElement element : schema.getElements()) {
final BaseTreeNode node = BaseTreeNode.newTreeNode(element);
children.add(node);
}
return children;
}
}
return Collections.emptyList();
}
use of com.revolsys.record.schema.RecordStore in project com.revolsys.open by revolsys.
the class RecordHtmlUiBuilder method newDataTableMap.
protected Map<String, Object> newDataTableMap(final HttpServletRequest request, final String pageName, final Query query) {
final String search = request.getParameter("search[value]");
final List<String> fieldNames = new ArrayList<>();
final List<KeySerializer> serializers = getSerializers(pageName, "list");
final Or or = new Or();
for (int i = 0; ; i++) {
final String name = request.getParameter("columns[" + i + "][name]");
if (Property.hasValue(name)) {
final KeySerializer serializer = serializers.get(i);
final String fieldName = serializer.getSortFieldName();
fieldNames.add(fieldName);
if (Property.hasValue(search)) {
if (HttpServletUtils.getBooleanParameter(request, "columns[" + i + "][searchable]")) {
or.or(Q.iLike("T." + fieldName, search));
}
}
} else {
break;
}
}
if (!or.isEmpty()) {
query.and(or);
}
final Map<String, Boolean> orderBy = getDataTableSortOrder(fieldNames, request);
query.setOrderBy(orderBy);
final RecordStore recordStore = getRecordStore();
return newDataTableMap(request, recordStore, query, pageName);
}
Aggregations