using System; using System.Collections.Generic; using System.Linq; using System.Text; using ChemAxon.NET.API; using ChemAxon.NET.IKVM.Chemistry; using ChemAxon.NET.Windows.Forms.MarvinViewControl; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms; namespace ChemAxon.NET.UnitTest.API.Examples.Workflow { public class WorkflowExample { public void EditMolecule_Example() { IJChemMolecule molecule = MainFactory.Chemistry.CreateMolecule("benzene"); IJChemMolecule newMolecule; bool isMoleculeChanged = MainFactory.Workflow.EditMolecule(molecule, out newMolecule); if (isMoleculeChanged) Console.WriteLine(string.Format("The molecule has changed to: {0}", newMolecule.Formula)); } public void ShowMolecule_Example() { IJChemMolecule molecule = MainFactory.Chemistry.CreateMolecule("benzene"); IMoleculeViewer moleculeViewer = new CustomMoleculeViewer(); moleculeViewer.Caption = molecule.Formula; moleculeViewer.DisplayHeight = 100; moleculeViewer.DisplayWidth = 100; moleculeViewer.Readonly = true; MainFactory.Workflow.ShowMolecule(molecule, moleculeViewer); } } public class CustomMoleculeViewer : IMoleculeViewer { public string Caption { get;set;} public int DisplayHeight { get; set; } public int DisplayWidth { get; set; } public bool Readonly { get; set; } public void ShowMolecule(IJChemMolecule molecule) { molecule.Renderer.Settings.DrawingInfo.Size = new Size(DisplayWidth, DisplayHeight); Image image = molecule.Renderer.RenderToImage(ImageFormat.Emf); Form frm = new Form(); frm.Text = Caption; frm.Height = DisplayHeight; frm.Width = DisplayWidth; PictureBox pb = new PictureBox(); frm.Controls.Add(pb); pb.Visible = true; pb.Dock = DockStyle.Fill; pb.Image = image; frm.ShowDialog(); } } }