예제 #1
0
        private void NewProjectOnProjectDataChanged(IProject sender, ProjectDataChangeType details)
        {
            Debug.Assert(pluginFileLock == null);
            Debug.Assert(sender == project);

            if (details != ProjectDataChangeType.WholeProject)
            {
                return;
            }

            pluginFileLock  = project.RequestWriteLock(this, DisposeLock, savedDataId);
            txtText.Enabled = pluginFileLock != null;

            label1.Text = string.Format((txtText.Enabled ? (string)label1.Tag : "{0} project is not editable."), project.ShortName);

            try
            {
                TextReader reader = project.GetPluginData(this, savedDataId);
                if (reader == null)
                {
                    EditText = "";
                    return;
                }

                using (reader)
                {
                    ProjectTextData data = (ProjectTextData)dataSerializer.Deserialize(reader);
                    EditText    = string.Join(Environment.NewLine, data.Lines);
                    textChanged = false;
                }
            }
            catch (Exception e)
            {
                EditText = "";
                MessageBox.Show($"Unable to load the text:\n{e.Message}", ProjectTextEditorPlugin.pluginName);
            }
        }
예제 #2
0
 public void ProjectDataChanged(IProject sender, ProjectDataChangeType details)
 {
     MessageBox.Show($"Project has changed: {details}");
     ShowProjectInfo();
 }