Oplossing gevonden!
a. Zet de CommunityCommons in je project uit de app store.
b. Creeer hierna een java actie die heet “DuplicateImage” in de map ‘Misc’ van de module ‘CommunityCommons’ in de modeler . Deze actie moet twee inputparameters krijgen:
Name: ‘fileToClone’ Type: ‘System.Image’
Name: ‘cloneTarget’ Type: ‘System.Image’
c. Deploy je project en kopieer de meegeleverde javasource in de map ‘javasource/comminutycommons/actions’ (hier zou al een lege actie moeten staan met dezelfde naam)
d. Open hierna de javasource ‘Misc.java’ in een textverwerker uit de map ‘javasource/comminutycommons’. Kopieer in deze javasource de volgende java functie
public static Boolean duplicateImage(IContext context, IMendixObject toClone, IMendixObject target) throws Exception { if (toClone == null || target == null) throw new Exception("No file to clone or to clone into provided");
MendixBoolean hasContents = (MendixBoolean) toClone.getMember(context, FileDocument.MemberNames.HasContents.toString());
if (!hasContents.getValue(context))
return false;
InputStream inputStream = Core.getImage(context, toClone, false);
Core.storeImageDocumentContent(context, target, inputStream, 200, 200);
return true;
}
Zet deze code tussen twee (willekeurige) andere functies. Bijvoorbeeld op regel 72 tussen de functies ‘duplicateFileDocument’ en ‘storeURLToFileDocument’.
e. De aangemaakte javaactie in de modeler kan je nu twee image objecten meegeven een te kopieeren image en een target image. Test dit wel goed, aangezien ik niet de tijd heb om dit op dit moment te testen.