private void InitializeEditor(DataImage currentImage)
 {
     batch = new EditableOperationBatch(currentImage);
     LoadChooseStep();
     imageFixedResult.CurrentImage = batch.ImageResult;
 }
        private void InitializeEditor(EditableOperationBatch batch)
        {
            buttonEditStep.Text = "Choose Step";
            buttonEditStep.Enabled = true;
            LoadChooseStep();
            imageFixedResult.CurrentImage = batch.ImageResult;
            imageFixedResult.CurrentImage.FinishWriting();
            imageSource1.CurrentImage = null;
            imageSource2.CurrentImage = null;
            imageOpResult.CurrentImage = null;
            currentStep = null;

            Invalidate(true);
        }
        private void buttonReset_Click(object sender, EventArgs e)
        {
            ShowList(true);

            if (buttonReset.Text == "Reset")
            {
                buttonEditStep.Enabled = false;
                imageFixedResult.CurrentImage = null;
                imageSource1.CurrentImage = null;
                imageSource2.CurrentImage = null;
                imageOpResult.CurrentImage = null;
                panelControl.Controls.Clear();
                list.Items.Clear();
                batch = null;
                currentStep = null;
                foreach (KeyValuePair<string, DataImage> pair in NuzzoliloImageFiddler.Instance.OpenImages)
                {
                    list.Items.Add(pair.Key);
                }
                buttonReset.Text = "Choose Image";
                Invalidate(true);
            }
            else if (buttonReset.Text == "Choose Image")
            {
                if (list.SelectedItem != null)
                {
                    DataImage currentImage = NuzzoliloImageFiddler.Instance.OpenImages[list.SelectedItem.ToString()];
                    InitializeEditor(currentImage);
                    buttonReset.Text = "Reset";
                    buttonEditStep.Enabled = true;
                }
            }
            Invalidate(true);
        }
 private void buttonLoad_Click(object sender, EventArgs e)
 {
     OpenFileDialog o = new OpenFileDialog();
     o.DefaultExt = ".nif";
     o.Filter = "(.nif)|*.nif";
     o.RestoreDirectory = true;
     DialogResult r = o.ShowDialog();
     if (r == DialogResult.OK)
     {
         string s = o.FileName;
         this.batch = EditableOperationBatch.FromSerialization(System.IO.File.ReadAllText(s));
         NuzzoliloImageFiddler.Instance.OpenImages.Clear();
         foreach (DataImage image in batch.Images.Values)
         {
             NuzzoliloImageFiddler.Instance.OpenImages.Add(image.Name, image);
         }
         InitializeEditor(this.batch);
     }
 }
        public static EditableOperationBatch FromSerialization(string fromSerialization)
        {
            //Console.Out.WriteLine("EditableOperationBatch.FromSerialization");
            //Console.Out.Flush();

            EditableOperationBatch batch = new EditableOperationBatch(fromSerialization);
            currentBatch = batch;

            //Console.Out.WriteLine("Batch Created");
            //Console.Out.Flush();

            string[] split = new string[1];
            split[0] = "\r\n";//Environment.NewLine;
            split = fromSerialization.Split(split, StringSplitOptions.RemoveEmptyEntries);
            foreach (string entry in split)
            {
                batch.ProcessSerializedStep(entry);
            }
            for (int i = 0; i < batch.images.Count; i++)
            {
                batch.imagesList.Add(batch.images[i.ToString()]);
            }
            batch.imageResult = batch.images[batch.steps[batch.steps.Count - 1].OperationResult];
            return batch;
        }
 private EditableOperationBatchStep(EditableOperationBatch batch)
 {
     this.batch = batch;
 }
        public EditableOperationBatchStep(EditableOperationBatch batch, DataImage image)
        {
            this.batch = batch;
            TagImage(image);

            this.operationResult = GetImageString(image);
            if (image.ResultOf != null)
            {
                TagImage(image.ResultOf.Source);
                this.source1 = GetImageString(image.ResultOf.Source);

                this.imageOperation = image.ResultOf.ImageOperation;
                try
                {

                    //if (typeof(DualImageOperation).IsAssignableFrom(imageOperation.GetType()))
                    //{
                        DualImageOperation d = (DualImageOperation)imageOperation;
                        TagImage(d.imageSource2);
                        this.source2 = GetImageString(d.imageSource2);
                    //}
                }
                catch (Exception)
                {
                }
            }
        }