Skip to content

Instantly share code, notes, and snippets.

@skullquake
Last active June 11, 2019 12:30
Show Gist options
  • Select an option

  • Save skullquake/d3f66e45cceb017b43325b13b308a0cd to your computer and use it in GitHub Desktop.

Select an option

Save skullquake/d3f66e45cceb017b43325b13b308a0cd to your computer and use it in GitHub Desktop.
mx nashorn quickstore
//--------------------------------------------------------------------------------
//configuration
//--------------------------------------------------------------------------------
var storeIDField="Title";
var storeIDValue="myDataStore";
var storeTable="Nashorn.JS";
var storeValueField="Contents";
var str_ret='';
function print(s){
str_ret+=s;
}
function println(s){
str_ret+=s+'\n';
}
function alert(s){
com.mendix.webui.FeedbackHelper.addTextMessageFeedback(
root.getContext(),
com.mendix.systemwideinterfaces.core.IFeedback.MessageType.INFO,
s,
true
)
}
function getStoreObject(){
var objStore=null;
var objType=storeTable;
var objIdentifierAttribute=storeIDField;
var objIdentifierValue=storeIDValue;
var objStoreAttribute=storeValueField;
var arr_obj=com.mendix.core.Core.retrieveXPathQuery(
root.getContext(),
"//"+objType+"["+objIdentifierAttribute+"='"+objIdentifierValue+"']",
1,
0,
{}
);
if(arr_obj.length>0){
objStore=arr_obj[0];
}else{
objStore=com.mendix.core.Core.instantiate(root.getContext(),objType);
objStore.setValue(root.getContext(),objIdentifierAttribute,objIdentifierValue);
objStore.setValue(root.getContext(),objStoreAttribute,"{}");//script content goes here
com.mendix.core.Core.commit(root.getContext(),objStore);
}
return objStore;
}
function getStoreValue(){
var objType=storeTable;
var objIdentifierAttribute=storeIDField;
var objIdentifierValue=storeIDValue;
var objStoreAttribute=storeValueField;
try{
return JSON.parse(
getStoreObject().getValue(root.getContext(),objStoreAttribute)
);
}catch(e){
return null;
}
}
function setStoreValue(o){
if(
o!=null&&
typeof(getStoreValue())=='object'
){
var objType=storeTable;
var objIdentifierAttribute=storeIDField;
var objIdentifierValue=storeIDValue;
var objStoreAttribute=storeValueField;
objStore=getStoreObject();
if(objStore!=null){
try{
objStore.setValue(
root.getContext(),
objStoreAttribute,
JSON.stringify(
o,
0,
'\t'
)
);
com.mendix.core.Core.commit(root.getContext(),objStore);
}catch(e){
return false;
}
}else{
return false;
}
}else{
return false;
}
}
function setStoreKV(k,v){
try{
var newobj=getStoreValue();
newobj[k]=v;
setStoreValue(newobj);
return true;
}catch(e){
return false;
}
}
function getStoreV(k){
try{
return getStoreValue()[k];
}catch(e){
return null;
}
}
for(var i=0;i<8;i++){
var v=[];
for(var j=0;j<8;j++){
v.push(Math.random())
}
setStoreKV(i,v);
}
try{
alert(JSON.stringify(getStoreValue(),0,'_'));
//--------------------------------------------------------------------------------
//java.util.List<? extends IMendixObjectMember<?>> getChangedMembers(IContext context)
//--------------------------------------------------------------------------------
//alert(getStoreObject().getChangedMembers(root.getContext()));//???
//--------------------------------------------------------------------------------
}catch(e){
alert(e);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment