-
Notifications
You must be signed in to change notification settings - Fork 123
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IEP-1336 Convert partitions.csv or nvs.csv model windows to editors #1070
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,55 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
package com.espressif.idf.ui.nvs.dialog; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import org.eclipse.core.commands.ExecutionException; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import org.eclipse.core.runtime.IProgressMonitor; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import org.eclipse.swt.SWT; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import org.eclipse.swt.widgets.Composite; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import org.eclipse.ui.PlatformUI; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import org.eclipse.ui.part.MultiPageEditorPart; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import com.espressif.idf.core.logging.Logger; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import com.espressif.idf.ui.nvs.handlers.NvsEditorHandler; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
public class NvsEditor extends MultiPageEditorPart | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+13
to
+14
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Consider implementing essential editor interfaces. The editor should implement -public class NvsEditor extends MultiPageEditorPart
+public class NvsEditor extends MultiPageEditorPart implements IReusableEditor
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
public NvsEditor() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PlatformUI.getWorkbench().getDisplay().asyncExec(() -> { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
try | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
new NvsEditorHandler().execute(null); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
catch (ExecutionException e) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Logger.log(e); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+15
to
+28
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Critical: Constructor implementation has severe issues. The current constructor implementation has several critical problems:
Apply this refactoring to fix the issues: public NvsEditor()
{
- PlatformUI.getWorkbench().getDisplay().asyncExec(() -> {
- try
- {
- new NvsEditorHandler().execute(null);
- }
- catch (ExecutionException e)
- {
- Logger.log(e);
- }
- });
+ super();
+}
+
+@Override
+protected void init() {
+ try {
+ new NvsEditorHandler().execute(null);
+ }
+ catch (ExecutionException e) {
+ Logger.log("Failed to initialize NVS editor", e);
+ MessageDialog.openError(
+ getSite().getShell(),
+ "Editor Initialization Error",
+ "Failed to initialize the NVS editor: " + e.getMessage());
+ }
} 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
protected void createPages() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Composite emptyPage = new Composite(getContainer(), SWT.NONE); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
int index = addPage(emptyPage); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
setPageText(index, "Empty Page"); //$NON-NLS-1$ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
getSite().getShell().getDisplay().asyncExec(() -> getSite().getPage().closeEditor(this, false)); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+30
to
+38
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Critical: Page creation implementation contradicts PR objectives. The current implementation creates an empty page and immediately closes the editor, which:
Implement proper dialog-based editing as per PR objectives: protected void createPages()
{
- Composite emptyPage = new Composite(getContainer(), SWT.NONE);
-
- int index = addPage(emptyPage);
- setPageText(index, "Empty Page"); //$NON-NLS-1$
- getSite().getShell().getDisplay().asyncExec(() -> getSite().getPage().closeEditor(this, false));
+ try {
+ // Create dialog page using TitleAreaDialog as per PR objectives
+ NvsTableDialog dialog = new NvsTableDialog(getSite().getShell());
+ Composite dialogArea = dialog.createDialogArea(getContainer());
+
+ int index = addPage(dialogArea);
+ setPageText(index, "NVS Table Editor");
+
+ // Initialize the dialog with file content
+ IFile file = ((IFileEditorInput) getEditorInput()).getFile();
+ dialog.initializeFromFile(file);
+ } catch (Exception e) {
+ Logger.log("Failed to create NVS editor page", e);
+ MessageDialog.openError(
+ getSite().getShell(),
+ "Editor Error",
+ "Failed to create editor page: " + e.getMessage());
+ }
}
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
public void doSave(IProgressMonitor monitor) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// Nothing to do | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
public void doSaveAs() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// Nothing to do | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
public boolean isSaveAsAllowed() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return false; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
package com.espressif.idf.ui.partitiontable.dialog; | ||
|
||
import org.eclipse.core.commands.ExecutionException; | ||
import org.eclipse.core.runtime.IProgressMonitor; | ||
import org.eclipse.swt.SWT; | ||
import org.eclipse.swt.widgets.Composite; | ||
import org.eclipse.ui.PlatformUI; | ||
import org.eclipse.ui.part.MultiPageEditorPart; | ||
|
||
import com.espressif.idf.core.logging.Logger; | ||
import com.espressif.idf.ui.partitiontable.handlers.PartitionTableEditorHandler; | ||
|
||
public class PartitionTableEditor extends MultiPageEditorPart | ||
{ | ||
|
||
public PartitionTableEditor() | ||
{ | ||
PlatformUI.getWorkbench().getDisplay().asyncExec(() -> { | ||
try | ||
{ | ||
new PartitionTableEditorHandler().execute(null); | ||
} | ||
catch (ExecutionException e) | ||
{ | ||
Logger.log(e); | ||
} | ||
}); | ||
|
||
} | ||
|
||
protected void createPages() | ||
{ | ||
Composite emptyPage = new Composite(getContainer(), SWT.NONE); | ||
|
||
int index = addPage(emptyPage); | ||
setPageText(index, "Empty Page"); //$NON-NLS-1$ | ||
getSite().getShell().getDisplay().asyncExec(() -> getSite().getPage().closeEditor(this, false)); | ||
} | ||
|
||
public void doSave(IProgressMonitor monitor) | ||
{ | ||
// Nothing to do | ||
|
||
} | ||
|
||
public void doSaveAs() | ||
{ | ||
// Nothing to do | ||
} | ||
|
||
public boolean isSaveAsAllowed() | ||
{ | ||
return false; | ||
} | ||
|
||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Enhance content type declarations.
Consider the following improvements:
priority="normal"
as it's the default valuebase-type="org.eclipse.core.runtime.text"
to inherit text file behavior📝 Committable suggestion